package org.geowebcache.grid;
import static org.junit.Assert.assertNotNull;
import java.io.IOException;
import java.util.Collections;
import java.util.Hashtable;
import java.util.List;
import org.geowebcache.GeoWebCacheException;
import org.geowebcache.layer.wms.WMSLayer;
import org.geowebcache.seed.GWCTask.TYPE;
import org.geowebcache.seed.SeedRequest;
import org.geowebcache.seed.TileBreeder;
import org.geowebcache.storage.TileRange;
import org.geowebcache.util.MockLockProvider;
import org.junit.Test;
/**
* Simple Test class for testing the behavior of a {@link GridSubset} with a non-zero
* zoomStart parameter.
*/
public class GridSubSetTest {
@Test
public void testCreateTileRange() throws IOException, GeoWebCacheException {
// Creation of a Test Layer
WMSLayer tl = createWMSLayer();
// First SubSet string
String gridSet = tl.getGridSubsets().iterator().next();
// Get the subset associated to the name
GridSubset gridSubSet = tl.getGridSubset(gridSet);
// Simple Bounding Box for the tests
BoundingBox bounds = new BoundingBox(0d, 0d, 1d, 1d);
// Selection of the area that covers the given rectangle
long[][] result = gridSubSet.getCoverageIntersections(bounds);
// This assertion should be true if no Exception has been thrown
assertNotNull(result);
}
/**
* Creation of a PNG test Layer with a non-zero zoomStart parameter for the test.
*
* @param format
* @return
*/
private static WMSLayer createWMSLayer() {
// Subsets table
Hashtable<String, GridSubset> grids = new Hashtable<String, GridSubset>();
// GridSetBroker to use for creating a GridSubSet to add to the table
GridSetBroker gridSetBroker = new GridSetBroker(false, false);
// Creation of a GridSubSet with a non-zero zoomStart parameter
GridSubset grid = GridSubsetFactory.createGridSubSet(gridSetBroker.WORLD_EPSG4326,
new BoundingBox(-30.0, 15.0, 45.0, 30), 5, 10, null, null);
grids.put(grid.getName(), grid);
// Parameters for the WMS Layer
String[] urls = { "http://localhost:38080/wms" };
List<String> formatList = Collections.singletonList("image/png");
int[] metaWidthHeight = { 3, 3 };
// WMS layer creation
WMSLayer layer = new WMSLayer("test:layer", urls, "aStyle", "test:layer", formatList,
grids, null, metaWidthHeight, "vendorparam=true", false, null);
// Layer initialization
layer.initialize(gridSetBroker);
layer.setLockProvider(new MockLockProvider());
return layer;
}
}