public void testLayer() throws Exception { String layerId = getLayerId(MockData.PRIMITIVEGEOFEATURE); LayerInfo layer = getCatalog().getLayerByName(layerId); addAuthUrl("layerAuth1", "http://geoserver/wms/auth1", layer.getAuthorityURLs()); addIdentifier("layerAuth1", "layerId1", layer.getIdentifiers()); getCatalog().save(layer); Document doc = getAsDOM( "sf/PrimitiveGeoFeature/wms?service=WMS&request=getCapabilities&version=1.3.0", true); String layerName = MockData.PRIMITIVEGEOFEATURE.getLocalPart(); assertXpathExists( "//wms:Layer[wms:Name='" + layerName + "']/wms:AuthorityURL[@name = 'layerAuth1']", doc); assertXpathEvaluatesTo( "http://geoserver/wms/auth1", "//wms:Layer[wms:Name='" + layerName + "']/wms:AuthorityURL[@name = 'layerAuth1']/wms:OnlineResource/@xlink:href", doc); assertXpathExists( "//wms:Layer[wms:Name='" + layerName + "']/wms:Identifier[@authority = 'layerAuth1']", doc); assertXpathEvaluatesTo( "layerId1", "//wms:Layer[wms:Name='" + layerName + "']/wms:Identifier[@authority = 'layerAuth1']", doc); }
@Before public void setUp() throws Exception { // setup property file data = File.createTempFile("retype", "data", new File("./target")); data.delete(); data.mkdir(); final String fileName = MockData.PRIMITIVEGEOFEATURE.getLocalPart() + ".properties"; URL properties = MockData.class.getResource(fileName); IOUtils.copy(properties.openStream(), new File(data, fileName)); // build a feature type with less attributes, extra attributes, type changes SimpleFeatureTypeBuilder ftb = new SimpleFeatureTypeBuilder(); ftb.add("description", String.class); ftb.add("pointProperty", MultiPoint.class); // poly -> multi-poly ftb.add("intProperty", Long.class); // int -> long ftb.add("dateTimeProperty", Date.class); // timestamp -> date ftb.add("newProperty", String.class); // new property ftb.setName(RENAMED); // rename type primitive = ftb.buildFeatureType(); PropertyDataStore pds = new PropertyDataStore(data); rts = new RetypingDataStore(pds) { @Override protected SimpleFeatureType transformFeatureType(SimpleFeatureType original) throws IOException { if (original.getTypeName().equals(MockData.PRIMITIVEGEOFEATURE.getLocalPart())) return primitive; else return super.transformFeatureType(original); } @Override protected String transformFeatureTypeName(String originalName) { if (originalName.equals(MockData.PRIMITIVEGEOFEATURE.getLocalPart())) return primitive.getTypeName(); else return super.transformFeatureTypeName(originalName); } }; // build a filter that will retrieve one feature only FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); fid = RENAMED + ".f001"; fidFilter = ff.id(Collections.singleton(ff.featureId(fid))); }