public void testAttributeDefaultValue() { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName("buggy"); builder.nillable(false).defaultValue(12).add("attrWithDefault", Integer.class); builder.nillable(true).defaultValue(null).add("attrWithoutDefault", Integer.class); SimpleFeatureType featureType = builder.buildFeatureType(); assertFalse(featureType.getDescriptor("attrWithDefault").isNillable()); assertEquals(12, featureType.getDescriptor("attrWithDefault").getDefaultValue()); assertTrue(featureType.getDescriptor("attrWithoutDefault").isNillable()); assertNull(featureType.getDescriptor("attrWithoutDefault").getDefaultValue()); }
public void testRetypeGeometryless() { builder.setName("testGeometryless"); builder.add("geo1", Point.class, DefaultGeographicCRS.WGS84); builder.add("integer", Integer.class); builder.setDefaultGeometry("geo1"); SimpleFeatureType type = builder.buildFeatureType(); // performing an attribute selection, even changing order, should not change // the default geometry, that had a special meaning in the original source SimpleFeatureType retyped = SimpleFeatureTypeBuilder.retype(type, new String[] {"integer"}); assertNotNull(retyped); assertNull(retyped.getGeometryDescriptor()); assertEquals(1, retyped.getAttributeCount()); assertEquals("integer", retyped.getAttributeDescriptors().get(0).getLocalName()); }
public void testSanity() { builder.setName("testName"); builder.setNamespaceURI("testNamespaceURI"); builder.add("point", Point.class, (CoordinateReferenceSystem) null); builder.add("integer", Integer.class); SimpleFeatureType type = builder.buildFeatureType(); assertNotNull(type); assertEquals(2, type.getAttributeCount()); AttributeType t = type.getType("point"); assertNotNull(t); assertEquals(Point.class, t.getBinding()); t = type.getType("integer"); assertNotNull(t); assertEquals(Integer.class, t.getBinding()); t = type.getGeometryDescriptor().getType(); assertNotNull(t); assertEquals(Point.class, t.getBinding()); }
public void testCRS() { builder.setName("testName"); builder.setNamespaceURI("testNamespaceURI"); builder.setCRS(DefaultGeographicCRS.WGS84); builder.crs(null).add("point", Point.class); builder.add("point2", Point.class, DefaultGeographicCRS.WGS84); builder.setDefaultGeometry("point"); SimpleFeatureType type = builder.buildFeatureType(); assertEquals(DefaultGeographicCRS.WGS84, type.getCoordinateReferenceSystem()); assertNull(type.getGeometryDescriptor().getType().getCoordinateReferenceSystem()); assertEquals( DefaultGeographicCRS.WGS84, ((GeometryType) type.getType("point2")).getCoordinateReferenceSystem()); }
public void testMaintainDefaultGeometryOnInit() { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName("testGeometries"); builder.add("geo1", Point.class, DefaultGeographicCRS.WGS84); builder.add("geo2", Polygon.class, DefaultGeographicCRS.WGS84); builder.setDefaultGeometry("geo2"); SimpleFeatureType type1 = builder.buildFeatureType(); builder = new SimpleFeatureTypeBuilder(); builder.init(type1); SimpleFeatureType type2 = builder.buildFeatureType(); assertEquals("geo2", type1.getGeometryDescriptor().getLocalName()); assertEquals("geo2", type2.getGeometryDescriptor().getLocalName()); }
public void testInitGeometryless() { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName("testGeometryless"); builder.add("integer", Integer.class); SimpleFeatureType type1 = builder.buildFeatureType(); builder = new SimpleFeatureTypeBuilder(); builder.init(type1); SimpleFeatureType type2 = builder.buildFeatureType(); assertEquals(type1, type2); }
public void testRemoveDefaultGeometryAfterInit() { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName("testGeometries"); builder.add("geo1", Point.class, DefaultGeographicCRS.WGS84); builder.add("geo2", Polygon.class, DefaultGeographicCRS.WGS84); builder.setDefaultGeometry("geo2"); SimpleFeatureType type1 = builder.buildFeatureType(); builder = new SimpleFeatureTypeBuilder(); builder.init(type1); builder.remove("geo2"); SimpleFeatureType type2 = builder.buildFeatureType(); assertEquals("geo2", type1.getGeometryDescriptor().getLocalName()); assertEquals("geo1", type2.getGeometryDescriptor().getLocalName()); } }
public void testMaintainDefaultGeometryOnRetype() { builder.setName("testGeometries"); builder.add("geo1", Point.class, DefaultGeographicCRS.WGS84); builder.add("geo2", Polygon.class, DefaultGeographicCRS.WGS84); builder.setDefaultGeometry("geo1"); SimpleFeatureType type = builder.buildFeatureType(); // performing an attribute selection, even changing order, should not change // the default geometry, that had a special meaning in the original source SimpleFeatureType retyped = SimpleFeatureTypeBuilder.retype(type, new String[] {"geo2", "geo1"}); assertEquals("geo1", retyped.getGeometryDescriptor().getLocalName()); }