Refine search
@Test public void testRemoveLayerGroupWithWorkspace() throws Exception { testModifyLayerGroupChangeWorkspace(); File f = new File(testData.getDataDirectoryRoot(), "workspaces/acme/layergroups/lg.xml"); assertTrue(f.exists()); LayerGroupInfo lg = catalog.getLayerGroupByName("lg"); assertNull(lg); lg = catalog.getLayerGroupByName("acme:lg"); assertNotNull(lg); catalog.remove(lg); assertFalse(f.exists()); }
@Test public void testRemoveLayerGroup() throws Exception { testAddLayerGroup(); File dataDirectoryRoot = testData.getDataDirectoryRoot(); File f = new File(dataDirectoryRoot, "layergroups/lg.xml"); assertTrue(f.exists()); LayerGroupInfo lg = catalog.getLayerGroupByName("lg"); catalog.remove(lg); assertFalse("removed lg", f.exists()); }
@Test public void testCascadeLayerGroup() { Catalog catalog = getCatalog(); LayerGroupInfo layerGroup = catalog.getLayerGroupByName(LAKES_GROUP); assertNotNull(layerGroup); CascadeDeleteVisitor visitor = new CascadeDeleteVisitor(catalog); visitor.visit(layerGroup); LayerGroupInfo nestedGroup = catalog.getLayerGroupByName(NEST_GROUP); assertNotNull(nestedGroup); assertEquals(1, nestedGroup.getLayers().size()); assertEquals(1, nestedGroup.getStyles().size()); }
@Test public void testGetLayerGroupByNameWithColon() { addLayer(); CatalogFactory factory = catalog.getFactory(); LayerGroupInfo lg = factory.createLayerGroup(); String lgName = "MyFakeWorkspace:layerGroup"; lg.setName(lgName); lg.setWorkspace(ws); lg.getLayers().add(l); lg.getStyles().add(s); catalog.add(lg); // lg is not global, should not be found at least we specify a prefixed name assertNull( "MyFakeWorkspace:layerGroup is not global, should not be found", catalog.getLayerGroupByName(lgName)); assertEquals(lg, catalog.getLayerGroupByName(ws.getName(), lgName)); assertEquals(lg, catalog.getLayerGroupByName(ws, lgName)); assertEquals(lg, catalog.getLayerGroupByName(ws.getName() + ":" + lgName)); }
@Test public void testModifyLayerGroupChangeWorkspace() throws Exception { testAddLayerGroup(); File f = new File(testData.getDataDirectoryRoot(), "layergroups/lg.xml"); assertTrue(f.exists()); LayerGroupInfo lg = catalog.getLayerGroupByName("lg"); WorkspaceInfo workspace = catalog.getWorkspaceByName("acme"); assertNotNull(workspace); lg.setWorkspace(workspace); catalog.save(lg); assertFalse(f.exists()); String path = testData.getDataDirectoryRoot().getAbsolutePath(); assertTrue("data directory " + path, testData.getDataDirectoryRoot().exists()); File file = new File(testData.getDataDirectoryRoot(), "workspaces/acme/layergroups/lg.xml"); assertTrue(file.getPath(), file.exists()); }
@Test public void testGetLayerGroupByName() { addLayerGroup(); assertNotNull(catalog.getLayerGroupByName("layerGroup")); assertNotNull(catalog.getLayerGroupByName((WorkspaceInfo) null, "layerGroup")); assertNull(catalog.getLayerGroupByName(catalog.getDefaultWorkspace(), "layerGroup")); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setWorkspace(ws); assertEquals(ws, catalog.getDefaultWorkspace()); lg2.setName("layerGroup2"); lg2.getLayers().add(l); lg2.getStyles().add(s); catalog.add(lg2); // When in the default workspace, we should be able to find it without the prefix assertNotNull(catalog.getLayerGroupByName("layerGroup2")); assertNotNull(catalog.getLayerGroupByName(ws.getName() + ":layerGroup2")); assertNotNull(catalog.getLayerGroupByName(catalog.getDefaultWorkspace(), "layerGroup2")); assertNull(catalog.getLayerGroupByName("cite", "layerGroup2")); // Repeat in a non-default workspace WorkspaceInfo ws2 = catalog.getFactory().createWorkspace(); ws2.setName("ws2"); catalog.add(ws2); catalog.setDefaultWorkspace(ws2); assertNull( "layerGroup2 is not global, should not be found", catalog.getLayerGroupByName("layerGroup2")); assertNotNull(catalog.getLayerGroupByName(ws.getName() + ":layerGroup2")); assertNotNull(catalog.getLayerGroupByName(ws, "layerGroup2")); assertNull(catalog.getLayerGroupByName("cite", "layerGroup2")); }
@Test public void testCascadeLayerDuplicate() { Catalog catalog = getCatalog(); String name = toString(LAKES); LayerInfo layer = catalog.getLayerByName(name); assertNotNull(layer); LayerGroupInfo group = catalog.getLayerGroupByName(LAKES_GROUP); group.getLayers().add(layer); group.getStyles().add(null); catalog.save(group); CascadeDeleteVisitor visitor = new CascadeDeleteVisitor(catalog); visitor.visit(layer); group = catalog.getLayerGroupByName(LAKES_GROUP); assertEquals(2, group.getLayers().size()); assertFalse(group.getLayers().contains(layer)); }
@Test public void testCascadeLayer() { Catalog catalog = getCatalog(); String name = toString(LAKES); LayerInfo layer = catalog.getLayerByName(name); assertNotNull(layer); CascadeDeleteVisitor visitor = new CascadeDeleteVisitor(catalog); visitor.visit(layer); LayerGroupInfo group = catalog.getLayerGroupByName(LAKES_GROUP); assertEquals(2, group.getLayers().size()); assertFalse(group.getLayers().contains(layer)); }
@Test public void testLayerGroupNullLayerReferences() { addLayer(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); lg.setWorkspace(null); lg.setName("layerGroup2"); lg.getLayers().add(null); lg.getStyles().add(null); lg.getLayers().add(l); lg.getStyles().add(s); lg.getLayers().add(null); lg.getStyles().add(null); catalog.add(lg); LayerGroupInfo resolved = catalog.getLayerGroupByName("layerGroup2"); assertEquals(1, resolved.layers().size()); assertEquals(1, resolved.styles().size()); assertEquals(s, resolved.styles().get(0)); }
@Test public void testLayerLocalWithContainingGroup() throws Exception { CatalogFactory factory = catalog.getFactory(); WorkspaceInfo citeWs = catalog.getWorkspaceByName("cite"); addLocalGroup(factory, citeWs); // set a local layer that's in the group final LayerInfo buildingsLayer = getBuildingsLayer(); LocalPublished.set(buildingsLayer); assertNotNull(catalog.getLayerByName(buildingsLayer.prefixedName())); assertNull(catalog.getLayerGroupByName(GLOBAL_GROUP)); assertNull(catalog.getLayerGroupByName(LOCAL_GROUP)); assertEquals(1, catalog.getLayers().size()); assertThat(catalog.getLayerGroups(), empty()); }
@Test public void testLayerLocalWithNonContainingGroup() throws Exception { CatalogFactory factory = catalog.getFactory(); WorkspaceInfo citeWs = catalog.getWorkspaceByName("cite"); addLocalGroup(factory, citeWs); // set a local layer that's not in the group final LayerInfo dividedRoutes = catalog.getLayerByName(getLayerId(SystemTestData.DIVIDED_ROUTES)); LocalPublished.set(dividedRoutes); assertNotNull(catalog.getLayerByName(dividedRoutes.prefixedName())); assertNull(catalog.getLayerGroupByName(GLOBAL_GROUP)); assertNull(catalog.getLayerGroupByName(LOCAL_GROUP)); assertEquals(1, catalog.getLayers().size()); assertThat(catalog.getLayerGroups(), empty()); }
@Test public void testLayerGroupTitle() { addLayer(); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); // lg2.setWorkspace(catalog.getDefaultWorkspace()); lg2.setName("layerGroup2"); lg2.setTitle("layerGroup2 title"); lg2.getLayers().add(l); lg2.getStyles().add(s); catalog.add(lg2); assertEquals(1, catalog.getLayerGroups().size()); lg2 = catalog.getLayerGroupByName("layerGroup2"); assertEquals("layerGroup2 title", lg2.getTitle()); lg2.setTitle("another title"); catalog.save(lg2); lg2 = catalog.getLayerGroupByName("layerGroup2"); assertEquals("another title", lg2.getTitle()); }
@Test public void testLayerGroupAbstract() { addLayer(); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); // lg2.setWorkspace(catalog.getDefaultWorkspace()); lg2.setName("layerGroup2"); lg2.setAbstract("layerGroup2 abstract"); lg2.getLayers().add(l); lg2.getStyles().add(s); catalog.add(lg2); assertEquals(1, catalog.getLayerGroups().size()); lg2 = catalog.getLayerGroupByName("layerGroup2"); assertEquals("layerGroup2 abstract", lg2.getAbstract()); lg2.setAbstract("another abstract"); catalog.save(lg2); lg2 = catalog.getLayerGroupByName("layerGroup2"); assertEquals("another abstract", lg2.getAbstract()); }
@Test public void testModifyLayerGroup() throws Exception { testAddLayerGroup(); LayerGroupInfo lg = catalog.getLayerGroupByName("lg"); StyleInfo s = catalog.getFactory().createStyle(); s.setName("foostyle2"); s.setFilename("foostyle2.sld"); catalog.add(s); lg.getStyles().set(0, s); catalog.save(lg); File f = new File(testData.getDataDirectoryRoot(), "layergroups/lg.xml"); Document dom = dom(f); assertXpathEvaluatesTo(s.getId(), "/layerGroup/styles/style/id", dom); }
@Test public void testLayerGroupType() { addLayer(); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setWorkspace(null); lg2.setName("layerGroup2"); lg2.setMode(LayerGroupInfo.Mode.NAMED); lg2.getLayers().add(l); lg2.getStyles().add(s); catalog.add(lg2); assertEquals(1, catalog.getLayerGroups().size()); lg2 = catalog.getLayerGroupByName("layerGroup2"); assertEquals(LayerGroupInfo.Mode.NAMED, lg2.getMode()); lg2.setMode(LayerGroupInfo.Mode.SINGLE); catalog.save(lg2); lg2 = catalog.getLayerGroupByName("layerGroup2"); assertEquals(LayerGroupInfo.Mode.SINGLE, lg2.getMode()); }
@Test public void testCascadeLayer() { Catalog catalog = getCatalog(); CascadeRemovalReporter visitor = new CascadeRemovalReporter(catalog); String name = getLayerId(MockData.LAKES); LayerInfo layer = catalog.getLayerByName(name); assertNotNull(layer); visitor.visit(layer); // layer.accept(visitor); // we expect a layer, a resource and two groups assertEquals(4, visitor.getObjects(null).size()); // check the layer and resource have been marked to delete (and assertEquals( catalog.getLayerByName(name), visitor.getObjects(LayerInfo.class, ModificationType.DELETE).get(0)); assertEquals( catalog.getResourceByName(name, ResourceInfo.class), visitor.getObjects(ResourceInfo.class, ModificationType.DELETE).get(0)); // the groups have been marked to update? assertTrue( visitor.getObjects(LayerGroupInfo.class, ModificationType.GROUP_CHANGED) .contains(catalog.getLayerGroupByName(LAKES_GROUP))); assertTrue( visitor.getObjects(LayerGroupInfo.class, ModificationType.GROUP_CHANGED) .contains(catalog.getLayerGroupByName(NEST_GROUP))); }
@Test public void testLayerGroupNullLayerOrStyleReferences() throws IOException { Catalog catalog = getCatalog(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); LayerInfo l = catalog.getLayerByName(getLayerId(MockData.ROAD_SEGMENTS)); StyleInfo s = catalog.getStyleByName("singleStyleGroup"); lg.setWorkspace(null); lg.setName("threeTypeLayerGroup"); // layer with default style lg.getLayers().add(l); lg.getStyles().add(null); // style group lg.getLayers().add(null); lg.getStyles().add(s); lg.getLayers().add(null); lg.getStyles().add(null); catalog.add(lg); LayerGroupInfo resolved = catalog.getLayerGroupByName("threeTypeLayerGroup"); assertEquals(2, resolved.layers().size()); assertEquals(2, resolved.styles().size()); assertEquals(l, resolved.layers().get(0)); assertEquals(s.getStyle(), resolved.styles().get(1).getStyle()); }
@Test public void testLoadNestedLayerGroups() throws Exception { GeoServerResourceLoader resources = GeoServerExtensions.bean(GeoServerResourceLoader.class); assertSame(catalog.getResourceLoader(), resources); loader.readCatalog(catalog, xp); LayerGroupInfo simpleLayerGroup = catalog.getLayerGroupByName("topp", "simplegroup"); assertNotNull(simpleLayerGroup); assertEquals(101, simpleLayerGroup.getAttribution().getLogoWidth()); assertEquals(102, simpleLayerGroup.getAttribution().getLogoHeight()); assertEquals(2, simpleLayerGroup.getMetadataLinks().size()); assertEquals( "http://my/metadata/link/1", simpleLayerGroup.getMetadataLinks().get(0).getContent()); assertEquals("text/html", simpleLayerGroup.getMetadataLinks().get(0).getType()); LayerGroupInfo nestedLayerGroup = catalog.getLayerGroupByName("topp", "nestedgroup"); assertNotNull(nestedLayerGroup); assertNotNull(nestedLayerGroup.getLayers()); assertEquals(2, nestedLayerGroup.getLayers().size()); assertTrue(nestedLayerGroup.getLayers().get(0) instanceof LayerGroupInfo); assertNotNull(((LayerGroupInfo) nestedLayerGroup.getLayers().get(0)).getLayers()); assertTrue(nestedLayerGroup.getLayers().get(1) instanceof LayerInfo); }
@Test public void testGlobalGroupSpecificRequest() { CatalogFactory factory = catalog.getFactory(); catalog.add(globalGroup2); LocalPublished.set(catalog.getLayerGroupByName(GLOBAL_GROUP)); assertNull(catalog.getLayerGroupByName(GLOBAL_GROUP2)); assertNotNull(getBuildingsLayer()); assertNotNull(getAggregateGeoFeatureLayer()); assertNotNull(catalog.getLayerGroupByName(GLOBAL_GROUP)); List<LayerInfo> layers = catalog.getLayers(); assertEquals(2, layers.size()); assertNull(catalog.getLayerByName(getLayerId(SystemTestData.BASIC_POLYGONS))); assertNull(getBridgesLayer()); assertNull(catalog.getLayerGroupByName(GLOBAL_GROUP2)); assertNull(getBuildingsLayer()); assertNull(getAggregateGeoFeatureLayer()); assertNotNull(catalog.getLayerGroupByName(GLOBAL_GROUP)); assertEquals(0, catalog.getLayers().size());
@Test public void testSingleStyleGroup() throws Exception { Catalog catalog = getCatalog(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); StyleInfo s = catalog.getStyleByName("singleStyleGroup"); lg.setWorkspace(null); lg.setName("singleStyleLayerGroup"); lg.getLayers().add(null); lg.getStyles().add(s); catalog.add(lg); LayerGroupInfo resolved = catalog.getLayerGroupByName("singleStyleLayerGroup"); assertEquals(1, resolved.layers().size()); assertEquals(1, resolved.styles().size()); assertEquals(s.getStyle(), resolved.styles().get(0).getStyle()); // Test bounds calculation new LayerGroupHelper(lg).calculateBounds(); assertEquals( catalog.getLayerByName((getLayerId(MockData.STREAMS))) .getResource() .getLatLonBoundingBox(), lg.getBounds()); }