/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.web.data.layergroup; import org.geoserver.catalog.Catalog; import org.geoserver.catalog.CatalogBuilder; import org.geoserver.catalog.FeatureTypeInfo; import org.geoserver.catalog.LayerGroupInfo; import org.geoserver.catalog.WorkspaceInfo; import org.geoserver.data.test.MockData; import org.geoserver.data.test.SystemTestData; import org.geoserver.web.GeoServerWicketTestSupport; import org.geotools.geometry.jts.ReferencedEnvelope; import org.geotools.referencing.crs.DefaultGeographicCRS; public abstract class LayerGroupBaseTest extends GeoServerWicketTestSupport { @Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); // TODO: see GEOS-3040 Catalog catalog = getCatalog(); String lakes = MockData.LAKES.getLocalPart(); String forests = MockData.FORESTS.getLocalPart(); String bridges = MockData.BRIDGES.getLocalPart(); setNativeBox(catalog, lakes); setNativeBox(catalog, forests); setNativeBox(catalog, bridges); LayerGroupInfo lg = catalog.getFactory().createLayerGroup(); lg.setName("lakes"); lg.getLayers().add(catalog.getLayerByName(lakes)); lg.getStyles().add(catalog.getStyleByName(lakes)); lg.getLayers().add(catalog.getLayerByName(forests)); lg.getStyles().add(catalog.getStyleByName(forests)); lg.getLayers().add(catalog.getLayerByName(bridges)); lg.getStyles().add(catalog.getStyleByName(bridges)); CatalogBuilder builder = new CatalogBuilder(catalog); builder.calculateLayerGroupBounds(lg); catalog.add(lg); WorkspaceInfo ws = catalog.getWorkspaceByName("cite"); LayerGroupInfo wslg = catalog.getFactory().createLayerGroup(); wslg.setName("bridges"); wslg.setWorkspace(ws); wslg.getLayers().add(catalog.getLayerByName(bridges)); wslg.getStyles().add(catalog.getStyleByName(bridges)); builder = new CatalogBuilder(catalog); builder.calculateLayerGroupBounds(wslg); catalog.add(wslg); } public void setNativeBox(Catalog catalog, String name) throws Exception { FeatureTypeInfo fti = catalog.getFeatureTypeByName(name); fti.setNativeBoundingBox(fti.getFeatureSource(null, null).getBounds()); fti.setLatLonBoundingBox(new ReferencedEnvelope(fti.getNativeBoundingBox(), DefaultGeographicCRS.WGS84)); catalog.save(fti); } }