@Override public void setWorkspace(WorkspaceInfo workspace) { delegate.setWorkspace(workspace); }
private void addLocalGroup(CatalogFactory factory, WorkspaceInfo citeWs) { LayerGroupInfo localGroup = factory.createLayerGroup(); localGroup.setName(LOCAL_GROUP); localGroup.setWorkspace(citeWs); localGroup.getLayers().add(getBuildingsLayer()); localGroup.getLayers().add(getBridgesLayer()); localGroup.getStyles().add(null); localGroup.getStyles().add(null); catalog.add(localGroup); }
@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 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 testAddLayerGroupNameConflict() throws Exception { addLayerGroup(); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setName("layerGroup"); lg2.getLayers().add(l); lg2.getStyles().add(s); try { catalog.add(lg2); fail("should have failed because same name and no workspace set"); } catch (IllegalArgumentException expected) { } // setting a workspace shluld pass lg2.setWorkspace(ws); catalog.add(lg2); }
@Test public void testInvalidStyleGroup() throws Exception { Catalog catalog = getCatalog(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); StyleInfo s = catalog.getStyleByName("polygon"); lg.setWorkspace(null); lg.setName("invalidStyleLayerGroup"); lg.getLayers().add(null); lg.getStyles().add(s); try { catalog.add(lg); fail("Should not be able to add an invalid style group to the catalog"); } catch (Exception e) { assertEquals( "Invalid style group: No layer or layer group named 'Default Polygon' found in the catalog", e.getMessage()); } }
@Test public void testGetLayerGroups() { addLayerGroup(); assertEquals(1, catalog.getLayerGroups().size()); assertEquals(0, catalog.getLayerGroupsByWorkspace(ws.getName()).size()); assertEquals(0, catalog.getLayerGroupsByWorkspace(ws).size()); assertEquals(0, catalog.getLayerGroupsByWorkspace((WorkspaceInfo) null).size()); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setWorkspace(catalog.getDefaultWorkspace()); lg2.setName("layerGroup2"); lg2.getLayers().add(l); lg2.getStyles().add(s); catalog.add(lg2); assertEquals(2, catalog.getLayerGroups().size()); assertEquals(1, catalog.getLayerGroupsByWorkspace(ws.getName()).size()); assertEquals(1, catalog.getLayerGroupsByWorkspace(ws).size()); assertEquals(1, catalog.getLayerGroupsByWorkspace((WorkspaceInfo) null).size()); }
@Test public void testRecursiveStyleGroup() throws IOException { Catalog catalog = getCatalog(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); StyleInfo s = catalog.getStyleByName("recursiveStyleGroup"); lg.setWorkspace(null); lg.setName("recursiveLayerGroup"); lg.getLayers().add(null); lg.getStyles().add(s); try { catalog.add(lg); Assert.fail("Should not be able to add invalid layer group to catalog"); } catch (IllegalArgumentException e) { // expected } }
@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 testAddLayerGroupWithWorkspaceWithResourceFromAnotherWorkspace() { WorkspaceInfo ws = catalog.getFactory().createWorkspace(); ws.setName("other"); catalog.add(ws); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setWorkspace(ws); lg2.setName("layerGroup2"); lg2.getLayers().add(l); lg2.getStyles().add(s); try { catalog.add(lg2); fail(); } catch (IllegalArgumentException expected) { } }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); Catalog catalog = getCatalog(); LayerInfo layer = catalog.getLayerByName(new NameImpl(CiteTestData.BASIC_POLYGONS)); StyleInfo style = catalog.getStyleByName(CiteTestData.DEFAULT_VECTOR_STYLE); CatalogFactory factory = catalog.getFactory(); LayerGroupInfo lg1 = factory.createLayerGroup(); lg1.setName("LayerGroup1"); lg1.getLayers().add(layer); lg1.getStyles().add(style); catalog.add(lg1); LayerGroupInfo lg2 = factory.createLayerGroup(); lg2.setName("LayerGroup2"); lg2.setWorkspace(catalog.getWorkspaceByName(CiteTestData.CITE_PREFIX)); lg2.getLayers().add(layer); lg2.getStyles().add(style); catalog.add(lg2); }
@Test public void testAddLayerGroupWithWorkspace() throws Exception { File f = file( testData.getDataDirectoryRoot(), "workspaces/acme/layergroups/foolayergroup.xml"); assertFalse(f.exists()); testAddLayer(); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); lg.setName("foolayergroup"); lg.setWorkspace(catalog.getWorkspaceByName("acme")); lg.getLayers().add(catalog.getLayerByName("foo")); lg.getStyles().add(null); catalog.add(lg); assertTrue(f.exists()); Document dom = dom(f); assertXpathEvaluatesTo( catalog.getWorkspaceByName("acme").getId(), "/layerGroup/workspace/id", dom); }
@Test public void testChangeWorkspace() throws Exception { DataStoreInfo store = catalog.getDataStores().get(0); try { WorkspaceInfo aws = catalog.getWorkspaceByName(ANOTHER_WS); store.setWorkspace(aws); catalog.save(store); nature.setWorkspace(aws); catalog.save(nature); LayerGroupSummary summary = cc.groupCache.get(nature.getId()); assertEquals(NATURE_GROUP, summary.getName()); assertEquals(ANOTHER_WS, summary.getWorkspace()); } finally { WorkspaceInfo ws = catalog.getWorkspaceByName(WS); store.setWorkspace(ws); catalog.save(store); } }
private LayerGroupInfo addLayerGroup( String name, Mode mode, WorkspaceInfo ws, PublishedInfo... layers) throws Exception { CatalogBuilder cb = new CatalogBuilder(catalog); LayerGroupInfo group = catalog.getFactory().createLayerGroup(); group.setName(name); group.setMode(mode); if (ws != null) { group.setWorkspace(ws); } if (layers != null) { for (PublishedInfo layer : layers) { group.getLayers().add(layer); group.getStyles().add(null); } } cb.calculateLayerGroupBounds(group); catalog.add(group); if (ws != null) { return catalog.getLayerGroupByName(ws.getName(), name); } else { return catalog.getLayerGroupByName(name); } }
@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()); }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); GeoServer geoserver = getGeoServer(); GeoServerInfo global = geoserver.getGlobal(); global.setGlobalServices(false); geoserver.save(global); Catalog catalog = getCatalog(); LayerInfo layer = catalog.getLayerByName(new NameImpl(CiteTestData.BASIC_POLYGONS)); StyleInfo style = catalog.getStyleByName(CiteTestData.DEFAULT_VECTOR_STYLE); CatalogFactory factory = catalog.getFactory(); LayerGroupInfo lg1 = factory.createLayerGroup(); lg1.setName("LayerGroup1"); lg1.getLayers().add(layer); lg1.getStyles().add(style); catalog.add(lg1); LayerGroupInfo lg2 = factory.createLayerGroup(); lg2.setName("LayerGroup2"); lg2.setWorkspace(catalog.getWorkspaceByName(CiteTestData.CITE_PREFIX)); lg2.getLayers().add(layer); lg2.getStyles().add(style); catalog.add(lg2); }
@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()); }
@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)); }
LayerGroupInfo globalGroup = factory.createLayerGroup(); globalGroup.setName("globalGroup"); globalGroup.setWorkspace(workspace2); globalGroup.getLayers().add(catalog.getLayerByName("Lakes")); globalGroup.getStyles().add(null); localGroup.setWorkspace(workspace); localGroup.getLayers().add(catalog.getLayerByName("GenericEntity")); localGroup.getStyles().add(null);
@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")); }