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());
    }
  }
  public void testGridOffsets() 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("GridOffsets", "10.5,-30.2");
    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);
    assertEquals(10.5, offsets[0]);
    assertEquals(-30.2, offsets[1]);

    raw.put("GridOffsets", "12");
    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("GridOffsets", e.getLocator());
    }

    raw.put("GridOffsets", "12,a");
    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("GridOffsets", e.getLocator());
    }
  }
  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());
  }