@Test
public void testProcessDescription_3()
                        throws OWSExceptionReport, IOException {

    String demoWPSURL = TestProperties.getProperty( "demo_wps_url" );
    Assume.assumeNotNull( demoWPSURL );
    WPSClient wpsClient = new WPSClient( new URL( demoWPSURL ) );
    org.deegree.protocol.wps.client.process.Process p2 = wpsClient.getProcess( "ParameterDemoProcess", null );
    InputType firstInput = p2.getInputTypes()[0];
    LiteralInputType literalInput = (LiteralInputType) firstInput;
    Assert.assertEquals( "integer", literalInput.getDataType().getValue() );
    Assert.assertEquals( "http://www.w3.org/TR/xmlschema-2/#integer",
                         literalInput.getDataType().getRef().toString() );
    Assert.assertEquals( "seconds", literalInput.getDefaultUom().getValue() );
    Assert.assertEquals( "seconds", literalInput.getSupportedUoms()[0].getValue() );
    Assert.assertEquals( "minutes", literalInput.getSupportedUoms()[1].getValue() );
    InputType secondInput = p2.getInputTypes()[1];
    Assert.assertEquals( "1", secondInput.getMinOccurs() );
    Assert.assertEquals( "1", secondInput.getMaxOccurs() );
    BBoxInputType bboxData = (BBoxInputType) secondInput;
    Assert.assertEquals( "EPSG:4326", bboxData.getDefaultCRS() );
    Assert.assertEquals( "EPSG:4326", bboxData.getSupportedCrs()[0] );
    InputType thirdInput = p2.getInputTypes()[2];
    ComplexInputType xmlData = (ComplexInputType) thirdInput;
    Assert.assertEquals( "text/xml", xmlData.getDefaultFormat().getMimeType() );
    Assert.assertEquals( "text/xml", xmlData.getSupportedFormats()[0].getMimeType() );
    InputType fourthInput = p2.getInputTypes()[3];
    ComplexInputType binaryData = (ComplexInputType) fourthInput;
    Assert.assertEquals( "image/png", binaryData.getDefaultFormat().getMimeType() );
    Assert.assertEquals( "base64", binaryData.getDefaultFormat().getEncoding() );
    Assert.assertEquals( "image/png", binaryData.getSupportedFormats()[0].getMimeType() );
    Assert.assertEquals( "base64", binaryData.getSupportedFormats()[0].getEncoding() );
    OutputType firstOutput = p2.getOutputTypes()[0];
    Assert.assertEquals( "A literal output parameter", firstOutput.getTitle().getString() );
    LiteralOutputType literalData = (LiteralOutputType) firstOutput;
    Assert.assertEquals( "integer", literalData.getDataType().getValue() );
    Assert.assertEquals( "http://www.w3.org/TR/xmlschema-2/#integer", literalData.getDataType().getRef().toString() );
    Assert.assertEquals( "seconds", literalData.getDefaultUom().getValue() );
    Assert.assertEquals( "seconds", literalData.getSupportedUoms()[0].getValue() );
    OutputType secondOutput = p2.getOutputTypes()[1];
    BBoxOutputType bboxOutput = (BBoxOutputType) secondOutput;
    Assert.assertEquals( "EPSG:4326", bboxOutput.getDefaultCrs() );
    Assert.assertEquals( "EPSG:4326", bboxOutput.getSupportedCrs()[0] );
    OutputType thirdOutput = p2.getOutputTypes()[2];
    ComplexOutputType xmlOutput = (ComplexOutputType) thirdOutput;
    Assert.assertEquals( "text/xml", xmlOutput.getDefaultFormat().getMimeType() );
    Assert.assertEquals( "text/xml", xmlOutput.getSupportedFormats()[0].getMimeType() );
    OutputType fourthOutput = p2.getOutputTypes()[3];
    ComplexOutputType binaryOutput = (ComplexOutputType) fourthOutput;
    System.out.println( binaryOutput.getDefaultFormat() );
    Assert.assertEquals( "text/xml", xmlOutput.getDefaultFormat().getMimeType() );
    Assert.assertEquals( "text/xml", xmlOutput.getSupportedFormats()[0].getMimeType() );
}