public void testCreateRequest() throws Exception { GetMapRequest request = (GetMapRequest) reader.createRequest(); assertNotNull(request); }
public void testSldFailLookup() throws Exception { // nothing matches the required style name HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsLibraryNoDefault.sld"); kvp.put("sld", URLDecoder.decode(url.toExternalForm(), "UTF-8")); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); kvp.put("styles", "ThisStyleDoesNotExists"); GetMapRequest request = (GetMapRequest) reader.createRequest(); try { reader.setLaxStyleMatchAllowed(false); request = (GetMapRequest) reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); fail("The style looked up, 'ThisStyleDoesNotExists', should not have been found"); } catch (ServiceException e) { // System.out.println(e); } }
public void testSortByLessThanRequired() throws Exception { HashMap<String, Serializable> kvp = new HashMap<>(); kvp.put("layers", getLayerId(MockData.BASIC_POLYGONS) + "," + getLayerId(MockData.LAKES)); kvp.put("sortBy", "FID D"); GetMapRequest request = (GetMapRequest) reader.createRequest(); try { reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); } catch (Exception e) { assertThat(e.getMessage(), containsString("sortBy")); } }
public void testViewParams() throws Exception { HashMap raw = new HashMap(); raw.put("layers", getLayerId(MockData.BASIC_POLYGONS)); raw.put("styles", ""); raw.put("format", "image/jpeg"); raw.put("srs", "epsg:3003"); raw.put("bbox", "-10,-10,10,10"); raw.put("height", "600"); raw.put("width", "800"); raw.put("request", "GetMap"); raw.put("service", "wms"); raw.put("viewParams", "where:WHERE PERSONS > 1000000;str:ABCD"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(raw), caseInsensitiveKvp(raw)); List<Map<String, String>> viewParamsList = request.getViewParams(); assertEquals(1, viewParamsList.size()); Map viewParams = viewParamsList.get(0); assertEquals("WHERE PERSONS > 1000000", viewParams.get("where")); assertEquals("ABCD", viewParams.get("str")); }
public void testRemoteWFSNoStyle() throws Exception { if (!RemoteOWSTestSupport.isRemoteWFSStatesAvailable(LOGGER)) return; HashMap raw = new HashMap(); raw.put("layers", "topp:states"); raw.put("format", "image/png"); raw.put("srs", "epsg:4326"); raw.put("bbox", "-100,20,-60,50"); raw.put("height", "300"); raw.put("width", "300"); raw.put("remote_ows_type", "WFS"); raw.put("remote_ows_url", RemoteOWSTestSupport.WFS_SERVER_URL); GetMapRequest request = (GetMapRequest) reader.createRequest(); try { request = (GetMapRequest) reader.read(request, parseKvp(raw), caseInsensitiveKvp(raw)); fail("This should have thrown an exception because of the missing style"); } catch (ServiceException e) { assertEquals("NoDefaultStyle", e.getCode()); } }
public void testSldNotExist() throws Exception { // Specified external SLD does not exist HashMap kvp = new HashMap(); URL url = new URL(GetMapKvpRequestReaderTest.class.getResource(""), "does-not-exist"); kvp.put("sld", URLDecoder.decode(url.toExternalForm(), "UTF-8")); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); kvp.put("styles", "ThisStyleDoesNotExists"); GetMapRequest request = (GetMapRequest) reader.createRequest(); try { reader.setLaxStyleMatchAllowed(false); request = (GetMapRequest) reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); fail("The style looked up, 'ThisStyleDoesNotExists', should not have been found"); } catch (ServiceException e) { assertTrue("Exception should not reveal its cause", e.getCause() == null); } }
public void testSldConnectionFailure() throws Exception { // Connection for specified external SLD fails while retrieving SLD HashMap kvp = new HashMap(); URL url = new URL("http://hostthatdoesnotexist/"); kvp.put("sld", URLDecoder.decode(url.toExternalForm(), "UTF-8")); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); kvp.put("styles", "ThisStyleDoesNotExists"); GetMapRequest request = (GetMapRequest) reader.createRequest(); try { reader.setLaxStyleMatchAllowed(false); request = (GetMapRequest) reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); fail("The style looked up, 'ThisStyleDoesNotExists', should not have been found"); } catch (ServiceException e) { assertTrue("Exception should not reveal its cause", e.getCause() == null); } }
public void testSldNotXML() throws Exception { // Specified external SLD is not XML HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReaderTest.class.getResource("paletted.tif"); kvp.put("sld", URLDecoder.decode(url.toExternalForm(), "UTF-8")); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); kvp.put("styles", "ThisStyleDoesNotExists"); GetMapRequest request = (GetMapRequest) reader.createRequest(); try { reader.setLaxStyleMatchAllowed(false); request = (GetMapRequest) reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); fail("The style looked up, 'ThisStyleDoesNotExists', should not have been found"); } catch (ServiceException e) { assertTrue("Exception should not reveal its cause", e.getCause() == null); } }
public void testSortBy() throws Exception { HashMap kvp = new HashMap(); kvp.put("layers", getLayerId(MockData.BASIC_POLYGONS)); kvp.put("sortBy", "FID D"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); assertEquals(1, request.getSortBy().size()); List<SortBy> sort = request.getSortBy().get(0); assertEquals(1, sort.size()); assertSortBy(sort.get(0), "FID", SortOrder.DESCENDING); }
public void testCQLFilter() throws Exception { HashMap kvp = new HashMap(); kvp.put("cql_filter", "foo = bar"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getCQLFilter()); assertEquals(1, request.getCQLFilter().size()); PropertyIsEqualTo filter = (PropertyIsEqualTo) request.getCQLFilter().get(0); }
public void testRemoteWFSInvalidURL() throws Exception { if (!RemoteOWSTestSupport.isRemoteWFSStatesAvailable(LOGGER)) return; HashMap raw = new HashMap(); raw.put("layers", "topp:states"); raw.put("format", "image/png"); raw.put("srs", "epsg:4326"); raw.put("bbox", "-100,20,-60,50"); raw.put("height", "300"); raw.put("width", "300"); raw.put("remote_ows_type", "WFS"); raw.put("remote_ows_url", "http://phantom.openplans.org:8080/crapserver/wfs?"); GetMapRequest request = (GetMapRequest) reader.createRequest(); try { request = (GetMapRequest) reader.read(request, parseKvp(raw), caseInsensitiveKvp(raw)); fail("This should have thrown an exception because of the non existent layer"); } catch (ServiceException e) { e.printStackTrace(); assertEquals("RemoteOWSFailure", e.getCode()); } }
public void testSortByGroup() throws Exception { HashMap kvp = new HashMap(); kvp.put("layers", "testGroup2"); kvp.put("sortBy", "FID D"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); assertEquals(2, request.getSortBy().size()); List<SortBy> sort1 = request.getSortBy().get(0); assertEquals(1, sort1.size()); assertSortBy(sort1.get(0), "FID", SortOrder.DESCENDING); List<SortBy> sort2 = request.getSortBy().get(0); assertEquals(1, sort2.size()); assertSortBy(sort2.get(0), "FID", SortOrder.DESCENDING); }
public void testSldNamed() throws Exception { // style name matching one in the sld HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsLibraryNoDefault.sld"); String decoded = URLDecoder.decode(url.toExternalForm(), "UTF-8"); kvp.put("sld", decoded); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); kvp.put("styles", "TheLibraryModeStyle"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getSld()); assertEquals(URLKvpParser.fixURL(decoded), request.getSld().toExternalForm()); final Style style = (Style) request.getStyles().get(0); assertNotNull(style); assertEquals("TheLibraryModeStyle", style.getName()); }
public void testSldDefault() throws Exception { // no style name, but the sld has a default for that layer HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsLibraryDefault.sld"); String decoded = URLDecoder.decode(url.toExternalForm(), "UTF-8"); kvp.put("sld", decoded); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getSld()); assertEquals(URLKvpParser.fixURL(decoded), request.getSld().toExternalForm()); final Style style = (Style) request.getStyles().get(0); assertNotNull(style); assertEquals("TheLibraryModeStyle", style.getName()); }
public void testFeatureId() throws Exception { HashMap kvp = new HashMap(); kvp.put("featureid", "foo"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getFeatureId()); assertEquals(1, request.getFeatureId().size()); assertEquals("foo", request.getFeatureId().get(0)); }
public void testFilter() throws Exception { HashMap kvp = new HashMap(); kvp.put("layers", getLayerId(MockData.BASIC_POLYGONS)); kvp.put("filter", "<Filter><FeatureId id=\"foo\"/></Filter>"); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); assertNotNull(request.getFilter()); assertEquals(1, request.getFilter().size()); Id fid = (Id) request.getFilter().get(0); assertEquals(1, fid.getIDs().size()); assertEquals("foo", fid.getIDs().iterator().next()); }
public void testSldNoDefault() throws Exception { // no style name, no default, we should fall back on the server default HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsLibraryNoDefault.sld"); // the kvp should be already in decoded form String decoded = URLDecoder.decode(url.toExternalForm(), "UTF-8"); kvp.put("sld", decoded); kvp.put( "layers", MockData.BASIC_POLYGONS.getPrefix() + ":" + MockData.BASIC_POLYGONS.getLocalPart()); GetMapRequest request = (GetMapRequest) reader.createRequest(); reader.setLaxStyleMatchAllowed(false); request = (GetMapRequest) reader.read(request, parseKvp(kvp), caseInsensitiveKvp(kvp)); assertNotNull(request.getSld()); assertEquals(URLKvpParser.fixURL(decoded), request.getSld().toExternalForm()); final Style style = (Style) request.getStyles().get(0); assertNotNull(style); assertEquals("BasicPolygons", style.getName()); }
public void testRemoteWFS() throws Exception { if (!RemoteOWSTestSupport.isRemoteWFSStatesAvailable(LOGGER)) return; HashMap raw = new HashMap(); raw.put("layers", "topp:states"); raw.put("styles", MockData.BASIC_POLYGONS.getLocalPart()); raw.put("format", "image/png"); raw.put("srs", "epsg:4326"); raw.put("bbox", "-100,20,-60,50"); raw.put("height", "300"); raw.put("width", "300"); raw.put("remote_ows_type", "WFS"); raw.put("remote_ows_url", RemoteOWSTestSupport.WFS_SERVER_URL); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(raw), caseInsensitiveKvp(raw)); assertEquals("WFS", request.getRemoteOwsType()); // TODO: handle case? assertEquals(new URL(RemoteOWSTestSupport.WFS_SERVER_URL), request.getRemoteOwsURL()); assertEquals(1, request.getLayers().size()); assertEquals( PublishedType.REMOTE.getCode().intValue(), request.getLayers().get(0).getType()); assertEquals("topp:states", request.getLayers().get(0).getName()); }
@Test public void testStyleGroup() throws Exception { WMS wms = new WMS(getGeoServer()); GetMapKvpRequestReader reader = new GetMapKvpRequestReader(wms); // asserts the a layerGroup can be created with null layer and a styleGroup sld HashMap kvp = new HashMap(); kvp.put("layers", "BasicStyleGroup"); kvp.put("styles", ""); GetMapRequest request = reader.createRequest(); request = reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getLayers()); assertNotNull(request.getStyles()); }
public void testSldFeatureTypeConstraints() throws Exception { // no styles, no layer, the full definition is in the sld HashMap kvp = new HashMap(); URL url = GetMapKvpRequestReader.class.getResource("BasicPolygonsFeatureTypeConstaint.sld"); String decoded = URLDecoder.decode(url.toExternalForm(), "UTF-8"); kvp.put("sld", decoded); GetMapRequest request = (GetMapRequest) reader.createRequest(); request = (GetMapRequest) reader.read(request, parseKvp(kvp), kvp); assertNotNull(request.getSld()); assertEquals(URLKvpParser.fixURL(decoded), request.getSld().toExternalForm()); // check the style final Style style = (Style) request.getStyles().get(0); assertNotNull(style); assertEquals("TheLibraryModeStyle", style.getName()); // check the layer assertEquals(1, request.getLayers().size()); MapLayerInfo layer = request.getLayers().get(0); assertEquals(getLayerId(MockData.BASIC_POLYGONS), layer.getName()); // check the filter imposed in the feature type constraint FilterFactory ff = CommonFactoryFinder.getFilterFactory(null); assertEquals(1, layer.getLayerFeatureConstraints().length); assertEquals( ff.equals(ff.property("ID"), ff.literal("xyz")), layer.getLayerFeatureConstraints()[0].getFilter()); }