@Override public Object read(Object request, Map kvp, Map rawKvp) throws Exception { GetCoverageType getCoverage = (GetCoverageType) super.read(request, kvp, rawKvp); // grab coverage info to perform further checks if (getCoverage.getIdentifier() == null) throw new WcsException( "identifier parameter is mandatory", MissingParameterValue, "identifier"); // build the domain subset getCoverage.setDomainSubset(parseDomainSubset(kvp)); // build output element getCoverage.setOutput(parseOutputElement(kvp)); return getCoverage; }
@Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); Catalog catalog = (Catalog) applicationContext.getBean("catalog"); reader = new GetCoverageRequestReader(catalog); }
/** Runs GetCoverage on the specified parameters and returns an array of coverages */ protected GridCoverage[] executeGetCoverageKvp(Map<String, Object> raw) throws Exception { GetCoverageType getCoverage = (GetCoverageType) kvpreader.read(kvpreader.createRequest(), parseKvp(raw), raw); GridCoverage[] result = service.getCoverage(getCoverage); coverages.addAll(Arrays.asList(result)); return result; }
@Test public void testUnknownCoverageParams() throws Exception { Map<String, Object> raw = baseMap(); final String layerId = "fairyTales:rumpelstilskin"; raw.put("identifier", layerId); raw.put("format", "SuperCoolFormat"); raw.put("BoundingBox", "-45,146,-42,147"); try { reader.read(reader.createRequest(), parseKvp(raw), raw); fail("That coverage is not registered???"); } catch (WcsException e) { assertEquals(InvalidParameterValue.toString(), e.getCode()); assertEquals("identifier", e.getLocator()); } }
@Override public Object read(Object request, Map kvp, Map rawKvp) throws Exception { GetCoverageType getCoverage = (GetCoverageType) super.read(request, kvp, rawKvp); // grab coverage info to perform further checks if (getCoverage.getIdentifier() == null) throw new WcsException("identifier parameter is mandatory", MissingParameterValue, "identifier"); // build the domain subset getCoverage.setDomainSubset(parseDomainSubset(kvp)); // build output element getCoverage.setOutput(parseOutputElement(kvp)); return getCoverage; }
@Test public void testUnsupportedCRS() throws Exception { Map<String, Object> raw = baseMap(); final String layerId = getLayerId(TASMANIA_BM); raw.put("identifier", layerId); raw.put("format", "image/tiff"); raw.put("GridBaseCRS", "urn:ogc:def:crs:EPSG:6.6:-1000"); try { reader.read(reader.createRequest(), parseKvp(raw), raw); fail("We should have had a WcsException here?"); } catch (WcsException e) { assertEquals("GridBaseCRS", e.getLocator()); assertEquals("InvalidParameterValue", e.getCode()); } }
reader.read(reader.createRequest(), parseKvp(raw), raw); fail("Hey, format is missing, this should have failed"); } catch (WcsException e) { raw.put("identifier", layerId); try { reader.read(reader.createRequest(), parseKvp(raw), raw); fail("Hey, format is missing, this should have failed"); } catch (WcsException e) { reader.read(reader.createRequest(), parseKvp(raw), raw); fail("Hey, boundingBox is missing, this should have failed"); } catch (WcsException e) { reader.read(reader.createRequest(), parseKvp(raw), raw); } catch (WcsException e) { fail("This time all mandatory params where provided?");
(GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); Double[] origin = (Double[]) getCoverage.getOutput().getGridCRS().getGridOrigin(); assertEquals(2, origin.length); reader.read(reader.createRequest(), parseKvp(raw), raw); fail("We should have had a WcsException here?"); } catch (WcsException e) { reader.read(reader.createRequest(), parseKvp(raw), raw); fail("We should have had a WcsException here?"); } catch (WcsException e) {
@Test public void testGridCS() throws Exception { Map<String, Object> raw = baseMap(); final String layerId = getLayerId(TASMANIA_BM); raw.put("identifier", layerId); raw.put("format", "image/tiff"); raw.put("BoundingBox", "-45,146,-42,147"); raw.put("GridCS", GridCS.GCSGrid2dSquare.getXmlConstant()); GetCoverageType getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals( GridCS.GCSGrid2dSquare.getXmlConstant(), getCoverage.getOutput().getGridCRS().getGridCS()); raw.put("GridCS", GridCS.GCSGrid2dSquare.getXmlConstant().toUpperCase()); getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals( GridCS.GCSGrid2dSquare.getXmlConstant(), getCoverage.getOutput().getGridCRS().getGridCS()); raw.put("GridCS", "Hoolabaloola"); try { reader.read(reader.createRequest(), parseKvp(raw), raw); fail("We should have had a WcsException here?"); } catch (WcsException e) { assertEquals(InvalidParameterValue.name(), e.getCode()); assertEquals("GridCS", e.getLocator()); } }
raw.put("GridType", GridType.GT2dSimpleGrid.getXmlConstant()); GetCoverageType getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); Double[] offsets = (Double[]) getCoverage.getOutput().getGridCRS().getGridOffsets(); assertEquals(2, offsets.length); reader.read(reader.createRequest(), parseKvp(raw), raw); fail("We should have had a WcsException here?"); } catch (WcsException e) { reader.read(reader.createRequest(), parseKvp(raw), raw); fail("We should have had a WcsException here?"); } catch (WcsException e) {
(GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals( GridType.GT2dGridIn2dCrs.getXmlConstant(), getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals( GridType.GT2dSimpleGrid.getXmlConstant(), getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals( GridType.GT2dSimpleGrid.getXmlConstant(), reader.read(reader.createRequest(), parseKvp(raw), raw); fail("We should have had a WcsException here?"); } catch (WcsException e) { reader.read(reader.createRequest(), parseKvp(raw), raw); fail("We should have had a WcsException here?"); } catch (WcsException e) {
@Test public void testBasic() throws Exception { Map<String, Object> raw = baseMap(); final String layerId = getLayerId(TASMANIA_BM); raw.put("identifier", layerId); raw.put("format", "image/tiff"); raw.put("BoundingBox", "-45,146,-42,147"); raw.put("store", "false"); raw.put("GridBaseCRS", "urn:ogc:def:crs:EPSG:6.6:4326"); GetCoverageType getCoverage = (GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); assertEquals(layerId, getCoverage.getIdentifier().getValue()); assertEquals("image/tiff", getCoverage.getOutput().getFormat()); assertFalse(getCoverage.getOutput().isStore()); assertEquals( "urn:ogc:def:crs:EPSG:6.6:4326", getCoverage.getOutput().getGridCRS().getGridBaseCRS()); }
(GetCoverageType) reader.read(reader.createRequest(), parseKvp(raw), raw); RangeSubsetType rs = getCoverage.getRangeSubset(); FieldSubsetType field = (FieldSubsetType) rs.getFieldSubset().get(0);