package org.geoserver.wcs2_0.eo.web;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import javax.xml.namespace.QName;
import org.apache.wicket.Component;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.tester.FormTester;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.LayerInfo;
import org.geoserver.data.test.MockData;
import org.geoserver.data.test.SystemTestData;
import org.geoserver.wcs2_0.eo.WCSEOMetadata;
import org.geoserver.web.ComponentBuilder;
import org.geoserver.web.FormTestPage;
import org.geoserver.web.GeoServerWicketTestSupport;
import org.junit.Test;
public class WCSEOLayerConfigTest extends GeoServerWicketTestSupport {
protected static QName WATTEMP = new QName(MockData.SF_URI, "watertemp", MockData.SF_PREFIX);
@Override
protected void onSetUp(SystemTestData testData) throws Exception {
super.onSetUp(testData);
Catalog catalog = getCatalog();
testData.addRasterLayer(WATTEMP, "watertemp.zip", null, null, SystemTestData.class, catalog);
}
@Override
protected void setUpTestData(SystemTestData testData) throws Exception {
testData.setUpWcs11RasterLayers();
}
@Test
public void testEditPlainTiff() {
final LayerInfo layer = getCatalog().getLayerByName(getLayerId(MockData.TASMANIA_DEM));
tester.startPage(new FormTestPage(new ComponentBuilder() {
public Component buildComponent(String id) {
return new WCSEOLayerConfig(id, new Model(layer));
}
}));
// print(tester.getLastRenderedPage(), true, true);
Component panel = tester.getLastRenderedPage().get("form:panel");
// the panel must not be visible for this layer
assertFalse(panel.isVisible());
}
@Test
public void testEditMosaic() {
// setup the panel with a mosaic
final LayerInfo layer = getCatalog().getLayerByName(getLayerId(WATTEMP));
tester.startPage(new FormTestPage(new ComponentBuilder() {
public Component buildComponent(String id) {
return new WCSEOLayerConfig(id, new Model(layer));
}
}));
// print(tester.getLastRenderedPage(), true, true);
Component panel = tester.getLastRenderedPage().get("form:panel");
// the panel must be visible for this layer, it's a ,mosaic
assertTrue(panel.isVisible());
FormTester ft = tester.newFormTester("form");
ft.setValue("panel:dataset", true);
ft.submit();
// print(tester.getLastRenderedPage(), true, true);
tester.assertModelValue("form:panel:dataset", true);
assertTrue((boolean) layer.getResource().getMetadata().get(WCSEOMetadata.DATASET.key, Boolean.class));
}
}