/* * This is part of Geomajas, a GIS framework, http://www.geomajas.org/. * * Copyright 2008-2015 Geosparc nv, http://www.geosparc.com/, Belgium. * * The program is available in open source according to the GNU Affero * General Public License. All contributions in this program are covered * by the Geomajas Contributors License Agreement. For full licensing * details, see LICENSE.txt in the project root. */ package org.geomajas.widget.layer.client.presenter; import com.google.gwt.user.client.ui.Widget; import com.smartgwt.client.widgets.Canvas; import junit.framework.Assert; import org.geomajas.configuration.client.ClientMapInfo; import org.geomajas.geometry.Bbox; import org.geomajas.gwt.client.map.MapView; import org.geomajas.gwt.client.map.layer.configuration.ClientWmsLayerInfo; import org.geomajas.gwt2.client.map.layer.LegendConfig; import org.geomajas.gwt2.client.map.layer.tile.TileConfiguration; import org.geomajas.gwt2.client.map.render.LayerRenderer; import org.geomajas.gwt2.plugin.wms.client.capabilities.WmsLayerInfo; import org.geomajas.gwt2.plugin.wms.client.capabilities.WmsLayerMetadataUrlInfo; import org.geomajas.gwt2.plugin.wms.client.capabilities.WmsLayerStyleInfo; import org.geomajas.gwt2.plugin.wms.client.capabilities.v1_1_1.WmsLayerInfo111; import org.geomajas.gwt2.plugin.wms.client.layer.WmsLayer; import org.geomajas.gwt2.plugin.wms.client.layer.WmsLayerConfiguration; import org.geomajas.gwt2.plugin.wms.client.service.WmsService; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import java.util.List; import static org.mockito.Mockito.any; import static org.mockito.Mockito.stub; import static org.mockito.Mockito.verify; /** * Default implementation of {@link RemovableLayerListPresenter}. * * @author Jan Venstermans * */ public class CreateClientWmsPresenterImplTest extends BasicForPresenterMock { private CreateClientWmsPresenterImpl presenter; @MockitoAnnotations.Mock protected Canvas controllerButtonsViewPanelContainer; @MockitoAnnotations.Mock protected Widget getCapabilitiesViewWidget; @MockitoAnnotations.Mock protected Widget selectLayerViewWidget; @MockitoAnnotations.Mock protected Widget editLayerSettingsViewWidget; private final String getCapablitiesWarning = "getCapablitiesWarning"; @Before public void before() { // stub panel stub(controllerButtonsView.getPanelContainer()).toReturn(controllerButtonsViewPanelContainer); // stub steps stub(getCapabilitiesView.getWidget()).toReturn(getCapabilitiesViewWidget); stub(getCapabilitiesView.getInvalidMessage()).toReturn(getCapablitiesWarning); stub(selectLayerView.getWidget()).toReturn(selectLayerViewWidget); stub(selectLayerView.getInvalidMessage()).toReturn(null); stub(editLayerSettingsView.getWidget()).toReturn(editLayerSettingsViewWidget); stub(editLayerSettingsView.getInvalidMessage()).toReturn(null); presenter = new CreateClientWmsPresenterImpl(mapwidget); } @Test public void constructorTest() { verify(controllerButtonsViewPanelContainer).addChild(getCapabilitiesViewWidget); verify(controllerButtonsView).setControllersButtonHandler(presenter); verify(selectLayerView).setSelectLayerFromCapabilitiesHandler(presenter); verify(editLayerSettingsView).setEditLayerSettingsHandler(presenter); } @Test public void testCreateWmsLayerInfo() throws Exception { ClientMapInfo clientMapInfoMock = Mockito.mock(ClientMapInfo.class); WmsLayerInfo wmsLayerInfoMock = Mockito.mock(WmsLayerInfo.class); MapView mapViewMock = Mockito.mock(MapView.class); String crsStub = "crsStub"; String baseWmsUrlStub = "baseWmsUrlStub"; String layerNameStub = "layerNameStub"; WmsService.WmsVersion wmsVersionStub = WmsService.WmsVersion.V1_1_1; stub(mapModel.getCrs()).toReturn(crsStub); stub(mapModel.getMapInfo()).toReturn(clientMapInfoMock); stub(mapModel.getMapView()).toReturn(mapViewMock); float maxScaleStub = 1F; Bbox bboxStub = new Bbox(); stub(clientMapInfoMock.getMaximumScale()).toReturn(maxScaleStub); stub(wmsLayerInfoMock.getBoundingBox(Mockito.anyString())).toReturn(bboxStub); WmsSelectedLayerInfo wmsSelectedLayerInfo = new WmsSelectedLayerInfo(); wmsSelectedLayerInfo.setBaseWmsUrl(baseWmsUrlStub); wmsSelectedLayerInfo.setWmsVersion(wmsVersionStub); wmsSelectedLayerInfo.setName(layerNameStub); wmsSelectedLayerInfo.setWmsLayerInfo(wmsLayerInfoMock); ClientWmsLayerInfo clientWmsLayerInfo = presenter.createClientWmsLayerInfo(wmsSelectedLayerInfo, mapwidget); Assert.assertEquals(crsStub, clientWmsLayerInfo.getWmsLayer().getConfiguration().getCrs()); Assert.assertEquals(baseWmsUrlStub, clientWmsLayerInfo.getWmsLayer().getConfiguration().getBaseUrl()); Assert.assertEquals(wmsVersionStub, clientWmsLayerInfo.getWmsLayer().getConfiguration().getVersion()); Assert.assertEquals(layerNameStub, clientWmsLayerInfo.getWmsLayer().getTitle()); } @Test public void onGetCapabilitiesUrlIncorrectTest() { presenter.createClientWmsLayer(); // no params Mockito.reset(controllerButtonsView); presenter.onFinisStepGetCapabilities( "http://apps.geomajas.org/geoserver/ows", null, null); verify(controllerButtonsView).setWarningLabelText(getCapablitiesWarning, true); // no service Mockito.reset(controllerButtonsView); presenter.onFinisStepGetCapabilities( "http://apps.geomajas.org/geoserver/ows?version=1.3.0&request=GetCapabilities", null, null); verify(controllerButtonsView).setWarningLabelText(getCapablitiesWarning, true); // no GetCapabilities Mockito.reset(controllerButtonsView); presenter.onFinisStepGetCapabilities( "http://apps.geomajas.org/geoserver/ows?service=wms&version=1.3.0", null, null); verify(controllerButtonsView).setWarningLabelText(getCapablitiesWarning, true); // no correct version Mockito.reset(controllerButtonsView); presenter.onFinisStepGetCapabilities( "http://apps.geomajas.org/geoserver/ows?service=wms&version=1.0.0&request=GetCapabilities", null, null); verify(controllerButtonsView).setWarningLabelText(getCapablitiesWarning, true); } /*@Test public void onGetCapabilitiesUrlCorrectTest() { presenter.createClientWmsLayer(); //TODO mock WmsClient // no params Mockito.reset(controllerButtonsView); presenter.onFinisStepGetCapabilities( "http://apps.geomajas.org/geoserver/ows?service=wms&version=1.3.0&request=GetCapabilities", null, null); verify(controllerButtonsView, Mockito.times(0)).setWarningLabelText(getCapablitiesWarning, true); } */ }