package org.geomajas.gwt2.plugin.wfs.server.command; import java.util.Arrays; import java.util.List; import junit.framework.Assert; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandler; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.geomajas.geometry.Bbox; import org.geomajas.geometry.service.BboxService; import org.geomajas.global.GeomajasException; import org.geomajas.gwt2.plugin.wfs.client.protocol.WfsFeatureTypeInfo; import org.geomajas.gwt2.plugin.wfs.server.command.dto.WfsGetCapabilitiesRequest; import org.geomajas.gwt2.plugin.wfs.server.command.dto.WfsGetCapabilitiesResponse; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/org/geomajas/spring/geomajasContext.xml", "commandContext.xml" }) public class WfsGetCapabilitiesCommandTest { private Server server; private int port; @Autowired private WfsGetCapabilitiesCommand command; private WfsServlet servlet; @Before public void before() throws Exception { server = new Server(0); servlet = new WfsServlet(); ServletContextHandler servletContextHandler = new ServletContextHandler(); servletContextHandler.setContextPath("/"); servletContextHandler.addServlet(new ServletHolder(servlet),"/wfs/*"); server.setHandler(servletContextHandler); server.start(); port = server.getConnectors()[0].getLocalPort(); servlet.setPort(port); } @Test public void integrationTest() throws GeomajasException { WfsGetCapabilitiesRequest request = new WfsGetCapabilitiesRequest("http://127.0.0.1:" + port + "/wfs"); WfsGetCapabilitiesResponse response = new WfsGetCapabilitiesResponse(); command.execute(request, response); List<WfsFeatureTypeInfo> featureTypes = response.getGetCapabilitiesDto().getFeatureTypeList().getFeatureTypes(); Assert.assertEquals(7, featureTypes.size()); WfsFeatureTypeInfo type = featureTypes.get(0); Assert.assertEquals("dov-pub-bodem:Bodemkundig_erfgoed", type.getName()); Assert.assertEquals("! URL gewijzigd. Bodemkundig erfgoed", type.getTitle()); Assert.assertEquals("Nieuwe URL: http://127.0.0.1:" + port + "/wfs/geoserver/bodem_varia/bodemkundig_erfgoed", type.getAbstract()); Assert.assertEquals("EPSG:31370", type.getDefaultCrs()); Assert.assertEquals(Arrays.asList("Soil", "bodem"), type.getKeywords()); Assert.assertTrue(BboxService.equals(new Bbox(2.534012015078217, 50.694051222131925, 3.14929925489, 0.67934318463), type.getWGS84BoundingBox(), 0.00001)); } @After public void after() throws Exception { server.stop(); } }