Package org.geotools.wps

Source Code of org.geotools.wps.GetCapabilitiesTest

/*
*    GeoTools - The Open Source Java GIS Toolkit
*    http://geotools.org
*
*    (C) 2008, Open Source Geospatial Foundation (OSGeo)
*
*    This library is free software; you can redistribute it and/or
*    modify it under the terms of the GNU Lesser General Public
*    License as published by the Free Software Foundation;
*    version 2.1 of the License.
*
*    This library is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
*    Lesser General Public License for more details.
*/
package org.geotools.wps;

import junit.framework.TestCase;
import net.opengis.ows11.AddressType;
import net.opengis.ows11.CodeType;
import net.opengis.ows11.ContactType;
import net.opengis.ows11.DCPType;
import net.opengis.ows11.HTTPType;
import net.opengis.ows11.KeywordsType;
import net.opengis.ows11.LanguageStringType;
import net.opengis.ows11.MetadataType;
import net.opengis.ows11.OperationType;
import net.opengis.ows11.OperationsMetadataType;
import net.opengis.ows11.RequestMethodType;
import net.opengis.ows11.ResponsiblePartySubsetType;
import net.opengis.ows11.ServiceIdentificationType;
import net.opengis.ows11.ServiceProviderType;
import net.opengis.wps10.LanguagesType1;
import net.opengis.wps10.ProcessBriefType;
import net.opengis.wps10.ProcessOfferingsType;
import net.opengis.wps10.WPSCapabilitiesType;

import org.geotools.xml.Parser;

/**
*
*
* @source $URL$
*/
public class GetCapabilitiesTest extends TestCase {

    public void testParse() throws Exception {
        WPSConfiguration wps = new WPSConfiguration();
        Parser parser = new Parser( wps );
       
        Object o = parser.parse( getClass().getResourceAsStream( "20_wpsGetCapabilities_response.xml"));
        assertTrue( o instanceof WPSCapabilitiesType);
       
        WPSCapabilitiesType caps = (WPSCapabilitiesType) o;
        assertServiceIdentification( caps.getServiceIdentification() );
        assertServiceProvider( caps.getServiceProvider() );
        assertOperationsMetadata( caps.getOperationsMetadata() );
        assertProcessOfferings( caps.getProcessOfferings() );
        assertLanguages( caps.getLanguages() );
    }
   
    /**
     * <ows:ServiceIdentification>
     *           <ows:Title>AAFC GDAS-based WPS server</ows:Title>
     *           <ows:Abstract>AAFC GDAS-based WPS server developed for the OGC WPSie.</ows:Abstract>
     *           <ows:Keywords>
     *                   <ows:Keyword>WPS</ows:Keyword>
     *                   <ows:Keyword>AAFC</ows:Keyword>
     *                   <ows:Keyword>geospatial</ows:Keyword>
     *                   <ows:Keyword>geoprocessing</ows:Keyword>
     *           </ows:Keywords>
     *           <ows:ServiceType>WPS</ows:ServiceType>
     *           <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
     *           <ows:ServiceTypeVersion>0.4.0</ows:ServiceTypeVersion>
     *           <ows:Fees>NONE</ows:Fees>
     *           <ows:AccessConstraints>NONE</ows:AccessConstraints>
     *   </ows:ServiceIdentification>
     */
    void assertServiceIdentification( ServiceIdentificationType si ) {
        assertNotNull( si );
       
        assertEquals( 1, si.getTitle().size() );
        assertEquals( "AAFC GDAS-based WPS server", ((LanguageStringType) si.getTitle().get(0)).getValue() );
       
        assertEquals( 1, si.getAbstract().size() );
        assertEquals( "AAFC GDAS-based WPS server developed for the OGC WPSie.", ((LanguageStringType) si.getAbstract().get(0)).getValue() );

        assertEquals( 1, si.getKeywords().size() );
        KeywordsType kw = (KeywordsType) si.getKeywords().get( 0 );
       
        assertEquals( 4, kw.getKeyword().size() );
        assertEquals( "WPS", ((LanguageStringType)kw.getKeyword().get(0)).getValue() );
        assertEquals( "AAFC", ((LanguageStringType)kw.getKeyword().get(1)).getValue() );
        assertEquals( "geospatial", ((LanguageStringType)kw.getKeyword().get(2)).getValue() );
        assertEquals( "geoprocessing", ((LanguageStringType)kw.getKeyword().get(3)).getValue() );
       
        assertNotNull( si.getServiceType() );
        assertEquals( "WPS", si.getServiceType().getValue() );
       
        assertEquals( 2, si.getServiceTypeVersion().size() );
        assertEquals( "1.0.0", si.getServiceTypeVersion().get(0) );
        assertEquals( "0.4.0", si.getServiceTypeVersion().get(1) );
       
        assertEquals( "NONE", si.getFees() );
       
        assertEquals( 1, si.getAccessConstraints().size() );
        assertEquals( "NONE", si.getAccessConstraints().get(0) );
    }
   
    /**
     *  <ows:ServiceProvider>
     *           <ows:ProviderName>Agriculture and Agri-Food Canada</ows:ProviderName>
     *           <ows:ProviderSite xlink:href="http://gis.agr.gc.ca/"/>
     *           <ows:ServiceContact>
     *                   <ows:IndividualName>Peter Schut</ows:IndividualName>
     *                   <ows:PositionName>Information System Scientist</ows:PositionName>
     *                   <ows:ContactInfo>
     *                           <ows:Phone>
     *                                   <ows:Voice>+1 613 759-1874</ows:Voice>
     *                                   <ows:Facsimile>+1 613 759-1937</ows:Facsimile>
     *                           </ows:Phone>
     *                           <ows:Address>
     *                                   <ows:DeliveryPoint>Room 1135, Neatby Building, 960, Carling Avenue</ows:DeliveryPoint>
     *                                   <ows:City>Ottawa</ows:City>
     *                                   <ows:AdministrativeArea>ON</ows:AdministrativeArea>
     *                                   <ows:PostalCode>K1AOC6</ows:PostalCode>
     *                                   <ows:Country>Canada</ows:Country>
     *                                   <ows:ElectronicMailAddress>schutp@agr.gc.ca</ows:ElectronicMailAddress>
     *                           </ows:Address>
     *                   </ows:ContactInfo>
     *           </ows:ServiceContact>
     *   </ows:ServiceProvider>
     *
     */
    void assertServiceProvider( ServiceProviderType sp ) {
        assertNotNull( sp );
        assertEquals( "Agriculture and Agri-Food Canada", sp.getProviderName() );
        assertEquals( "http://gis.agr.gc.ca/", sp.getProviderSite().getHref() );
       
        ResponsiblePartySubsetType sc = sp.getServiceContact();
        assertNotNull( sc );
        assertEquals( "Peter Schut", sc.getIndividualName() );
       
        ContactType ci = sc.getContactInfo();
        assertNotNull( ci );
        assertEquals( 1, ci.getPhone().getVoice().size() );
        assertEquals( "+1 613 759-1874", ci.getPhone().getVoice().get( 0 ) );
        assertEquals( 1, ci.getPhone().getFacsimile().size() );
        assertEquals( "+1 613 759-1937", ci.getPhone().getFacsimile().get( 0 ) );

        AddressType a = ci.getAddress();
        assertNotNull( a );
        assertEquals( 1, a.getDeliveryPoint().size() );
        assertEquals( "Room 1135, Neatby Building, 960, Carling Avenue", a.getDeliveryPoint().get( 0 ) );
        assertEquals( "Ottawa", a.getCity() );
        assertEquals( "ON", a.getAdministrativeArea() );
        assertEquals( "Canada", a.getCountry() );
        assertEquals( 1, a.getElectronicMailAddress().size() );
        assertEquals( "schutp@agr.gc.ca", a.getElectronicMailAddress().get(0) );
    }
   
    /**
     * <ows:OperationsMetadata>
     *           <ows:Operation name="GetCapabilities">
     *                   <ows:DCP>
     *                           <ows:HTTP>
     *                                  <ows:Get xlink:href="http://wms1.agr.gc.ca/GeoPS/GeoPS?"/>
     *                           </ows:HTTP>
     *                   </ows:DCP>
     *           </ows:Operation>
     *           <ows:Operation name="DescribeProcess">
     *                  <ows:DCP>
     *                           <ows:HTTP>
     *                                   <ows:Get xlink:href="http://wms1.agr.gc.ca/GeoPS/GeoPS?"/>
     *                                   <ows:Post xlink:href="http://wms1.agr.gc.ca/GeoPS/GeoPS"/>
     *                           </ows:HTTP>
     *                   </ows:DCP>
     *           </ows:Operation>
     *           <ows:Operation name="Execute">
     *                   <ows:DCP>
     *                           <ows:HTTP>
     *                                   <ows:Get xlink:href="http://wms1.agr.gc.ca/GeoPS/GeoPS?"/>
     *                                   <ows:Post xlink:href="http://wms1.agr.gc.ca/GeoPS/GeoPS"/>
     *                           </ows:HTTP>
     *                   </ows:DCP>
     *           </ows:Operation>
     *   </ows:OperationsMetadata>
     */
    void assertOperationsMetadata( OperationsMetadataType om ) {
        assertNotNull( om );
       
        assertEquals( 3, om.getOperation().size() );
       
        OperationType op = (OperationType) om.getOperation().get( 0 );
        assertEquals( "GetCapabilities", op.getName() );
        assertEquals( 1, op.getDCP().size() );
       
        HTTPType http = ((DCPType)op.getDCP().get(0)).getHTTP();
        assertEquals( 1, http.getGet().size() );
        assertEquals( "http://wms1.agr.gc.ca/GeoPS/GeoPS?", ((RequestMethodType)http.getGet().get(0)).getHref() );
   
        op = (OperationType) om.getOperation().get( 1 );
        assertEquals( "DescribeProcess", op.getName() );
        assertEquals( 1, op.getDCP().size() );
       
        http = ((DCPType)op.getDCP().get(0)).getHTTP();
        assertEquals( 1, http.getGet().size() );
        assertEquals( "http://wms1.agr.gc.ca/GeoPS/GeoPS?", ((RequestMethodType)http.getGet().get(0)).getHref() );
        assertEquals( 1, http.getPost().size() );
        assertEquals( "http://wms1.agr.gc.ca/GeoPS/GeoPS", ((RequestMethodType)http.getPost().get(0)).getHref() );

        op = (OperationType) om.getOperation().get( 2 );
        assertEquals( "Execute", op.getName() );
        assertEquals( 1, op.getDCP().size() );
       
        http = ((DCPType)op.getDCP().get(0)).getHTTP();
        assertEquals( 1, http.getGet().size() );
        assertEquals( "http://wms1.agr.gc.ca/GeoPS/GeoPS?", ((RequestMethodType)http.getGet().get(0)).getHref() );
        assertEquals( 1, http.getPost().size() );
        assertEquals( "http://wms1.agr.gc.ca/GeoPS/GeoPS", ((RequestMethodType)http.getPost().get(0)).getHref() );
    }
   
    /**
     * <wps:ProcessOfferings>
     *           <wps:Process wps:processVersion="1">
     *                   <ows:Identifier>buffer</ows:Identifier>
     *                   <ows:Title>Buffer a polygon feature</ows:Title>
     *                   <ows:Abstract>Buffer  the polygon coordinates found in one GML stream by a given buffer distance, and output the results in GML.</ows:Abstract>
     *                   <ows:Metadata xlink:title="buffer" />
     *                   <ows:Metadata xlink:title="polygon" />
     *           </wps:Process>
     *   </wps:ProcessOfferings>
     */
    void assertProcessOfferings( ProcessOfferingsType po ) {
        assertNotNull( po );
        assertEquals( 1, po.getProcess().size() );
       
        ProcessBriefType pb = (ProcessBriefType) po.getProcess().get( 0 );
        assertNotNull( pb.getIdentifier() );
        assertEquals( "buffer", ((CodeType) pb.getIdentifier()).getValue() );
       
        assertNotNull( pb.getTitle() );
        assertEquals( "Buffer a polygon feature", pb.getTitle().getValue() );
   
        assertNotNull( pb.getAbstract() );
        assertEquals( "Buffer  the polygon coordinates found in one GML stream by a given buffer distance, and output the results in GML.", pb.getAbstract().getValue() );
   
        assertEquals( 2, pb.getMetadata().size() );
        assertEquals( "buffer", ((MetadataType)pb.getMetadata().get(0)).getTitle() );
        assertEquals( "polygon", ((MetadataType)pb.getMetadata().get(1)).getTitle() );
    }
   
    void assertLanguages( LanguagesType1 l ) {
        assertNotNull( l.getDefault() );
        assertEquals( "en-CA", l.getDefault().getLanguage() );
      
        assertEquals( 2, l.getSupported().getLanguage().size() );
        assertEquals( "en-CA", l.getSupported().getLanguage().get( 0 ) );
        assertEquals( "fr-CA", l.getSupported().getLanguage().get( 1 ) );
    }
}
TOP

Related Classes of org.geotools.wps.GetCapabilitiesTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.