Package org.geotools.wfs.bindings

Source Code of org.geotools.wfs.bindings.FeatureCollectionTypeBindingTest

/*
*    GeoTools - The Open Source Java GIS Toolkit
*    http://geotools.org
*
*    (C) 2002-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.wfs.bindings;

import java.net.URL;

import net.opengis.wfs.FeatureCollectionType;
import net.opengis.wfs.WfsFactory;

import org.geotools.feature.DefaultFeatureCollection;
import org.geotools.feature.FeatureCollection;
import org.geotools.feature.FeatureIterator;
import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
import org.geotools.test.TestData;
import org.geotools.wfs.WFS;
import org.geotools.wfs.WFSTestSupport;
import org.geotools.xml.Binding;
import org.opengis.feature.simple.SimpleFeature;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.Point;

/**
*
*
* @source $URL$
*/
public class FeatureCollectionTypeBindingTest extends WFSTestSupport {

    public FeatureCollectionTypeBindingTest() {
        super(WFS.FeatureCollectionType, FeatureCollectionType.class, Binding.OVERRIDE);
       
    }

    @Override
    public void testEncode() throws Exception {
       
        namespaceMappings.put( "geotools", "http://geotools.org" );
           
        DefaultFeatureCollection features = new DefaultFeatureCollection(null,null);
       
        SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder();
        tb.setName( "feature" );
        tb.setNamespaceURI( "http://geotools.org");
        tb.add( "geometry", Point.class );
        tb.add( "integer", Integer.class );
       
        SimpleFeatureBuilder b = new SimpleFeatureBuilder( tb.buildFeatureType() );
        b.add( new GeometryFactory().createPoint( new Coordinate( 0, 0 ) ) );
        b.add( 0 );
        features.add( b.buildFeature( "zero" ) );
       
        b.add( new GeometryFactory().createPoint( new Coordinate( 1, 1 ) ) );
        b.add( 1 );
        features.add( b.buildFeature( "one" ) );
       
        FeatureCollectionType fc = WfsFactory.eINSTANCE.createFeatureCollectionType();
        fc.getFeature().add( features );
       
        Document dom = encode( fc, WFS.FeatureCollection );
        print( dom );
       
        NodeList featureNodes = dom.getElementsByTagNameNS( "http://geotools.org" , "feature" );
       
        assertEquals( 2, featureNodes.getLength() );
        for ( int i = 0; i < featureNodes.getLength(); i++ ) {
            Element featureNode = (Element) featureNodes.item( i );
            assertNotNull( featureNode.getElementsByTagNameNS( "http://geotools.org", "geometry") );
            assertNotNull( featureNode.getElementsByTagNameNS( "http://geotools.org", "integer") );
        }
    }

    @Override
    public void testParse() throws Exception {
        final URL resource = TestData.getResource(this, "FeatureCollectionTypeBindingTest.xml");
        buildDocument(resource);
       
        FeatureCollectionType fc = (FeatureCollectionType) parse();
        assertEquals( 1, fc.getFeature().size() );
       
        FeatureCollection features = (FeatureCollection) fc.getFeature().get( 0 );
        assertEquals( 2, features.size() );
       
        FeatureIterator fi = features.features();
        try {
            assertTrue( fi.hasNext() );
            SimpleFeature f = (SimpleFeature) fi.next();
           
            assertEquals( "feature", f.getType().getTypeName() );
            assertTrue( f.getDefaultGeometry() instanceof LineString );
            assertEquals( "1", f.getAttribute("integer").toString() );
           
        }
        finally {
            if( fi != null ){
                fi.close();
            }
        }
       
       
    }

}
TOP

Related Classes of org.geotools.wfs.bindings.FeatureCollectionTypeBindingTest

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.