/* (c) 2014 - 2016 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.gwc; import java.util.HashSet; import java.util.Set; import org.geoserver.catalog.PublishedInfo; import org.geoserver.catalog.StoreInfo; import org.geoserver.catalog.PublishedType; import org.geoserver.catalog.WorkspaceInfo; import org.geoserver.catalog.impl.DataStoreInfoImpl; import org.geoserver.catalog.impl.FeatureTypeInfoImpl; import org.geoserver.catalog.impl.LayerGroupInfoImpl; import org.geoserver.catalog.impl.LayerInfoImpl; import org.geoserver.catalog.impl.NamespaceInfoImpl; import org.geoserver.catalog.impl.StyleInfoImpl; import org.geoserver.catalog.impl.WorkspaceInfoImpl; import org.geotools.geometry.jts.ReferencedEnvelope; import org.geotools.referencing.crs.DefaultGeographicCRS; import com.google.common.collect.Lists; public class GWCTestHelpers { public static LayerInfoImpl mockLayer(String resourceName, String[] extraStyles, PublishedType type) { return mockLayer(resourceName, null, extraStyles, type); } @SuppressWarnings({ "rawtypes", "unchecked" }) public static LayerInfoImpl mockLayer(String resourceName, String workSpaceName, String[] extraStyles, PublishedType type) { StoreInfo store = new DataStoreInfoImpl(null); store.setName(resourceName + "-store"); store.setEnabled(true); if(workSpaceName != null) { WorkspaceInfo workspace = new WorkspaceInfoImpl(); workspace.setName(workSpaceName); store.setWorkspace(workspace); } NamespaceInfoImpl ns = new NamespaceInfoImpl(); ns.setPrefix("test"); ns.setURI("http://example.com"); FeatureTypeInfoImpl resource = new FeatureTypeInfoImpl(null); resource.setName(resourceName); resource.setNamespace(ns); ReferencedEnvelope box = new ReferencedEnvelope(-180, 0, 0, 90, DefaultGeographicCRS.WGS84); resource.setLatLonBoundingBox(box); resource.setNativeBoundingBox(box); resource.setEnabled(true); resource.setStore(store); LayerInfoImpl layer = new LayerInfoImpl(); layer.setId("id-" + resource.prefixedName()); layer.setResource(resource); layer.setEnabled(true); StyleInfoImpl defaultStyle = new StyleInfoImpl(null); defaultStyle.setName("default"); layer.setDefaultStyle(defaultStyle); if (extraStyles != null) { Set styles = new HashSet(); for (String name : extraStyles) { StyleInfoImpl extra = new StyleInfoImpl(null); extra.setName(name); styles.add(extra); } layer.setStyles(styles); } layer.setType(type); return layer; } public static LayerGroupInfoImpl mockGroup(String name, PublishedInfo ... layers) { LayerGroupInfoImpl lg = new LayerGroupInfoImpl(); lg.setId("id-" + name); lg.setName(name); lg.setLayers(Lists.newArrayList(layers)); lg.setBounds(new ReferencedEnvelope(-180, -90, 180, 90, DefaultGeographicCRS.WGS84)); return lg; } }