Skip to content

Commit

Permalink
mock wms and raster data
Browse files Browse the repository at this point in the history
  • Loading branch information
jodygarnett committed Oct 28, 2014
1 parent 2755a2b commit 98eb4b2
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ static Kind of( DataAccessFactory format){
if (params.contains("dbtype")) {
return Kind.DATABASE;
}
if (params.contains("directory") || params.contains("file")) {
if (params.contains("directory") || params.contains("file") || params.contains("raster")) {
return Kind.FILE;
}
if (params.contains("wms")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ public void setUpMVC() {
public void testCreate() throws Exception {
MockGeoServer.get().catalog()
.workspace("foo", "http://scratch.org", true)
.vector("sample").workspace()
.layer("one").featureType().defaults().store("sample")
.geoServer().build(geoServer);

Expand Down Expand Up @@ -163,8 +162,6 @@ public void testGet() throws Exception {
.geoServer()
.catalog()
.workspace("foo", "http://scratch.org", true)
.vector("shape")
.workspace()
.map("map")
.defaults()
.info("The map", "This map is cool!")
Expand Down Expand Up @@ -213,10 +210,9 @@ public void testGetLayers() throws Exception {
@SuppressWarnings("unused")
GeoServer gs = MockGeoServer.get().catalog()
.workspace("foo", "http://scratch.org", true)
.vector("store").source("directory").workspace()
.map("map")
.defaults()
.layer("one").featureType().defaults().store("store").map()
.layer("one").coverage().defaults().store("store").map()
.layer("two").featureType().defaults().store("store")
.geoServer().build(geoServer);

Expand All @@ -234,15 +230,14 @@ public void testGetLayers() throws Exception {

obj = arr.object(1);
assertEquals("one", obj.str("name"));
assertEquals("vector", obj.str("type"));
assertEquals("raster", obj.str("type"));
}

@Test
public void testPutLayers() throws Exception {
@SuppressWarnings("unused")
GeoServer gs = MockGeoServer.get().catalog()
.workspace("foo", "http://scratch.org", true)
.vector("store").workspace()
.map("map")
.defaults()
.layer("one")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,15 @@
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.Nullable;
import javax.xml.transform.TransformerException;




//import org.apache.wicket.util.file.Files;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.CoverageInfo;
import org.geoserver.catalog.CoverageStoreInfo;
import org.geoserver.catalog.DataStoreInfo;
import org.geoserver.catalog.FeatureTypeInfo;
Expand All @@ -40,6 +37,7 @@
import org.geoserver.catalog.ResourceInfo;
import org.geoserver.catalog.StoreInfo;
import org.geoserver.catalog.StyleInfo;
import org.geoserver.catalog.WMSLayerInfo;
import org.geoserver.catalog.WMSStoreInfo;
import org.geoserver.catalog.WorkspaceInfo;
import org.geoserver.catalog.impl.CatalogFactoryImpl;
Expand All @@ -66,7 +64,6 @@
import org.mockito.stubbing.Answer;
import org.opengis.referencing.crs.CoordinateReferenceSystem;

import com.boundlessgeo.geoserver.api.controllers.MockGeoServer.LayerBuilder;
import com.google.common.base.Function;
import com.google.common.collect.Lists;

Expand Down Expand Up @@ -423,6 +420,9 @@ public StoreBuilder(String name, WorkspaceBuilder workspaceBuilder, IO.Type kind
case SERVICE:
store = mock(WMSStoreInfo.class);
break;
case RESOURCE:
store = mock(StoreInfo.class);
break;
}
when(store.getName()).thenReturn(name);
}
Expand All @@ -444,7 +444,7 @@ else if( source.startsWith("postgis")){
}
else if( source.contains("service=wms")){
when(store.getConnectionParameters()).thenReturn(
(Map<String,Serializable>) (Map) new KVP("url", source) );
(Map<String,Serializable>) (Map) new KVP("wms", source) );
}
else {
when(store.getConnectionParameters()).thenReturn(
Expand Down Expand Up @@ -616,22 +616,29 @@ public StyleBuilder style() {
public FeatureTypeBuilder featureType() {
return new FeatureTypeBuilder(this);
}
public FeatureTypeBuilder featureType(String storeName) {
return new FeatureTypeBuilder(this).store(storeName);

public CoverageBuilder coverage() {
return new CoverageBuilder(this);
}

public WMSLayerBuilder wmsLayer() {
return new WMSLayerBuilder(this);
}

public MockGeoServer geoServer() {
return workspaceBuilder.geoServer();
}
public ResourceBuilder<?,?> resource(){

public ResourceBuilder<?, ?> resource() {
return this.resourceBuilder;
}
public WorkspaceBuilder workspace(){

public WorkspaceBuilder workspace() {
return this.workspaceBuilder;
}
}

public class ResourceBuilder<T extends ResourceInfo, B extends ResourceBuilder> extends Builder {
public abstract class ResourceBuilder<T extends ResourceInfo, B extends ResourceBuilder<?,?>> extends Builder {

protected T resource;
protected LayerBuilder layerBuilder;
Expand All @@ -652,16 +659,9 @@ public NamespaceInfo answer(InvocationOnMock invocation) throws Throwable {
when(layer.getResource()).thenReturn(resource);
}

@SuppressWarnings("unchecked")
public B store(final String storeName){
when(resource.getStore()).thenAnswer( new Answer<StoreInfo>() {
@Override
public StoreInfo answer(InvocationOnMock invocation) throws Throwable {
return ResourceBuilder.this.layerBuilder.workspaceBuilder.findStore(storeName).store;
}
});
return (B) this;
}
public abstract B defaults();

public abstract B store(final String storeName);

@SuppressWarnings("unchecked")
public B proj(String srs, CoordinateReferenceSystem crs) {
Expand All @@ -677,6 +677,7 @@ public B bbox(double x1, double y1, double x2, double y2, CoordinateReferenceSys
return (B) this;
}

@SuppressWarnings("unchecked")
public B latLonBbox(double x1, double y1, double x2, double y2) {
when(resource.getLatLonBoundingBox()).thenReturn(new ReferencedEnvelope(x1,x2,y1,y2, DefaultGeographicCRS.WGS84));
return (B) this;
Expand All @@ -691,15 +692,71 @@ public LayerBuilder layer() {
}

public MapBuilder map() {
return layerBuilder.mapBuilder;
return layerBuilder.map();
}

public MockGeoServer geoServer() {
return workspace().catalog().geoServer();
}
}

public class FeatureTypeBuilder extends ResourceBuilder<FeatureTypeInfo,FeatureTypeBuilder> {
public class WMSLayerBuilder extends ResourceBuilder<WMSLayerInfo, WMSLayerBuilder> {

public WMSLayerBuilder(LayerBuilder layerBuilder) {
super(mock(WMSLayerInfo.class), layerBuilder);
}

public WMSLayerBuilder defaults() {
proj("EPSG:4326", DefaultGeographicCRS.WGS84).bbox(-180, -90, 180, 90,
DefaultGeographicCRS.WGS84).latLonBbox(-180, -90, 180, 90);
return this;
}

public WMSLayerBuilder store(final String storeName) {
WorkspaceBuilder workspaceBuilder = layerBuilder.workspaceBuilder;
if (workspaceBuilder.findStore(storeName) == null) {
workspaceBuilder.wms(storeName);
}
when(resource.getStore()).thenAnswer(new Answer<StoreInfo>() {
@Override
public StoreInfo answer(InvocationOnMock invocation) throws Throwable {
return WMSLayerBuilder.this.layerBuilder.workspaceBuilder
.findStore(storeName).store;
}
});
return this;
}
}

public class CoverageBuilder extends ResourceBuilder<CoverageInfo, CoverageBuilder> {

public CoverageBuilder(LayerBuilder layerBuilder) {
super(mock(CoverageInfo.class), layerBuilder);
}

public CoverageBuilder defaults() {
proj("EPSG:4326", DefaultGeographicCRS.WGS84).bbox(-180, -90, 180, 90,
DefaultGeographicCRS.WGS84).latLonBbox(-180, -90, 180, 90);
return this;
}

public CoverageBuilder store(final String storeName) {
WorkspaceBuilder workspaceBuilder = layerBuilder.workspaceBuilder;
if (workspaceBuilder.findStore(storeName) == null) {
workspaceBuilder.raster(storeName);
}
when(resource.getStore()).thenAnswer(new Answer<StoreInfo>() {
@Override
public StoreInfo answer(InvocationOnMock invocation) throws Throwable {
return CoverageBuilder.this.layerBuilder.workspaceBuilder
.findStore(storeName).store;
}
});
return this;
}
}

public class FeatureTypeBuilder extends ResourceBuilder<FeatureTypeInfo, FeatureTypeBuilder> {

public FeatureTypeBuilder(LayerBuilder layerBuilder) {
super(mock(FeatureTypeInfo.class), layerBuilder);
Expand All @@ -722,13 +779,19 @@ public FeatureTypeBuilder defaults() {

return schema("geom:Point,name:String");
}

public LayerBuilder layer() {
return this.layerBuilder;
}

public MapBuilder map() {
return this.layerBuilder.mapBuilder;

public FeatureTypeBuilder store(final String storeName){
WorkspaceBuilder workspaceBuilder = layerBuilder.workspaceBuilder;
if( workspaceBuilder.findStore(storeName) == null ){
workspaceBuilder.vector(storeName);
}
when(resource.getStore()).thenAnswer( new Answer<StoreInfo>() {
@Override
public StoreInfo answer(InvocationOnMock invocation) throws Throwable {
return FeatureTypeBuilder.this.layerBuilder.workspaceBuilder.findStore(storeName).store;
}
});
return this;
}
}

Expand Down

0 comments on commit 98eb4b2

Please sign in to comment.