/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wfs.v1_1; import static org.junit.Assert.assertTrue; import net.opengis.ows10.Ows10Factory; import net.opengis.wfs.GetCapabilitiesType; import net.opengis.wfs.WfsFactory; import org.geoserver.wfs.CapabilitiesTransformer; import org.geoserver.wfs.GetCapabilities; import org.geoserver.wfs.WFSExtendedCapabilitiesProvider; import org.geoserver.wfs.WFSExtensions; import org.geoserver.wfs.WFSTestSupport; import org.geoserver.wfs.request.GetCapabilitiesRequest; import org.geotools.xml.transform.TransformerBase; import org.junit.Before; import org.junit.Test; import java.util.Collections; public class VersionNegotiationTest extends WFSTestSupport { static GetCapabilities getCaps; static WfsFactory factory; static Ows10Factory owsFactory; @Before public void initialise() { getCaps = new GetCapabilities(getWFS(), getCatalog(), Collections.<WFSExtendedCapabilitiesProvider>emptyList()); factory = WfsFactory.eINSTANCE; owsFactory = Ows10Factory.eINSTANCE; } @Test public void test0() throws Exception { // test when provided and accepted match up GetCapabilitiesType request = factory.createGetCapabilitiesType(); request.setService("WFS"); request.setAcceptVersions(owsFactory.createAcceptVersionsType()); request.getAcceptVersions().getVersion().add("1.0.0"); request.getAcceptVersions().getVersion().add("1.1.0"); TransformerBase tx = getCaps.run(GetCapabilitiesRequest.adapt(request)); assertTrue(tx instanceof CapabilitiesTransformer.WFS1_1); } @Test public void test1() throws Exception { // test accepted only 1.0 GetCapabilitiesType request = factory.createGetCapabilitiesType(); request.setService("WFS"); request.setAcceptVersions(owsFactory.createAcceptVersionsType()); request.getAcceptVersions().getVersion().add("1.0.0"); TransformerBase tx = getCaps.run(GetCapabilitiesRequest.adapt(request)); assertTrue(tx instanceof CapabilitiesTransformer.WFS1_0); } @Test public void test2() throws Exception { // test accepted only 1.1 GetCapabilitiesType request = factory.createGetCapabilitiesType(); request.setService("WFS"); request.setAcceptVersions(owsFactory.createAcceptVersionsType()); request.getAcceptVersions().getVersion().add("1.1.0"); TransformerBase tx = getCaps.run(GetCapabilitiesRequest.adapt(request)); assertTrue(tx instanceof CapabilitiesTransformer.WFS1_1); } @Test public void test5() throws Exception { // test accepted = 0.0.0 GetCapabilitiesType request = factory.createGetCapabilitiesType(); request.setService("WFS"); request.setAcceptVersions(owsFactory.createAcceptVersionsType()); request.getAcceptVersions().getVersion().add("0.0.0"); TransformerBase tx = getCaps.run(GetCapabilitiesRequest.adapt(request)); assertTrue(tx instanceof CapabilitiesTransformer.WFS1_0); } @Test public void test6() throws Exception { // test accepted = 1.1.1 GetCapabilitiesType request = factory.createGetCapabilitiesType(); request.setService("WFS"); request.setAcceptVersions(owsFactory.createAcceptVersionsType()); request.getAcceptVersions().getVersion().add("1.1.1"); TransformerBase tx = getCaps.run(GetCapabilitiesRequest.adapt(request)); assertTrue(tx instanceof CapabilitiesTransformer.WFS1_1); } @Test public void test7() throws Exception { // test accepted = 1.0.5 GetCapabilitiesType request = factory.createGetCapabilitiesType(); request.setService("WFS"); request.setAcceptVersions(owsFactory.createAcceptVersionsType()); request.getAcceptVersions().getVersion().add("1.0.5"); TransformerBase tx = getCaps.run(GetCapabilitiesRequest.adapt(request)); assertTrue(tx instanceof CapabilitiesTransformer.WFS1_0); } }