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 testEmptyLayerGroupBounds() throws Exception { Catalog cat = getCatalog(); LayerGroupInfo group = cat.getFactory().createLayerGroup(); group.setName("empty_group"); assertNull(group.getBounds()); // force bounds computation CatalogBuilder cb = new CatalogBuilder(cat); cb.calculateLayerGroupBounds(group); assertNull(group.getBounds()); }
@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); }
private void testSerializationWithMode(Mode mode) throws Exception { Catalog catalog = new CatalogImpl(); CatalogFactory cFactory = catalog.getFactory(); LayerGroupInfo group1 = cFactory.createLayerGroup(); group1.setName("foo"); group1.setTitle("foo title"); group1.setAbstract("foo abstract"); group1.setMode(mode); ByteArrayOutputStream out = out(); persister.save(group1, out); // print(in(out)); ByteArrayInputStream in = in(out); LayerGroupInfo group2 = persister.load(in, LayerGroupInfo.class); assertEquals(group1.getName(), group2.getName()); assertEquals(group1.getTitle(), group2.getTitle()); assertEquals(group1.getAbstract(), group2.getAbstract()); assertEquals(group1.getMode(), group2.getMode()); Document dom = dom(in(out)); assertEquals("layerGroup", dom.getDocumentElement().getNodeName()); }
@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) { } }
@Test public void testLayerGroupEoBounds() throws Exception { Catalog cat = getCatalog(); CatalogBuilder cb = new CatalogBuilder(cat); cb.setStore(cat.getDataStoreByName(MockData.LINES.getPrefix())); FeatureTypeInfo fti = cb.buildFeatureType(toName(MockData.LINES)); cb.setupBounds(fti); LayerInfo layer = cat.getFactory().createLayer(); layer.setResource(fti); layer.setName(fti.getName()); layer.setEnabled(true); layer.setType(PublishedType.VECTOR); LayerGroupInfo group = cat.getFactory().createLayerGroup(); group.setMode(LayerGroupInfo.Mode.EO); group.setName("group_EO"); group.setRootLayer(layer); assertNull(group.getBounds()); // force bounds computation cb.calculateLayerGroupBounds(group); assertNotNull(group.getBounds()); assertEquals(fti.getNativeBoundingBox(), group.getBounds()); }
@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 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 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 testAddLayerGroup() throws Exception { testAddLayer(); // testAddStyle(); File f = new File(testData.getDataDirectoryRoot(), "layergroups/lg.xml"); assertFalse(f.exists()); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); lg.setName("lg"); lg.getLayers().add(catalog.getLayerByName("foo")); lg.getStyles().add(catalog.getStyleByName("foostyle")); lg.getLayers().add(catalog.getLayerByName("foo")); lg.getStyles().add(/* default style */ null); lg.getLayers().add(catalog.getLayerByName("foo")); lg.getStyles().add(catalog.getStyleByName("foostyle")); catalog.add(lg); assertTrue(f.exists()); }
@Test public void testRemoveLayerGroupInLayerGroup() throws Exception { addLayerGroup(); LayerGroupInfo lg2 = catalog.getFactory().createLayerGroup(); lg2.setName("layerGroup2"); lg2.getLayers().add(lg); lg2.getStyles().add(s); catalog.add(lg2); try { catalog.remove(lg); fail("should have failed because lg is in another lg"); } catch (IllegalArgumentException expected) { } // removing the containing layer first should work catalog.remove(lg2); catalog.remove(lg); }
@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()); } }
@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); }
CatalogFactory factory = catalog.getFactory(); LayerGroupInfo globalGroup = factory.createLayerGroup(); globalGroup.setName(LAKES_GROUP); globalGroup.getLayers().add(catalog.getLayerByName(getLayerId(LAKES))); globalGroup.getLayers().add(catalog.getLayerByName(getLayerId(FORESTS))); globalGroup.getLayers().add(catalog.getLayerByName(getLayerId(BRIDGES))); globalGroup.getStyles().add(null); globalGroup.getStyles().add(null); globalGroup.getStyles().add(null); catalog.add(globalGroup); LayerGroupInfo nestGroup = factory.createLayerGroup(); nestGroup.setName(NEST_GROUP); nestGroup.getLayers().add(catalog.getLayerByName(getLayerId(LAKES))); nestGroup.getLayers().add(globalGroup); nestGroup.getStyles().add(null); nestGroup.getStyles().add(null); catalog.add(nestGroup);
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 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 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 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 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()); }