From 11a75c3ae4a894b64567514b500f717813e89287 Mon Sep 17 00:00:00 2001 From: carlo cancellieri Date: Fri, 18 Oct 2013 16:08:44 +0200 Subject: [PATCH] fix commit for #105. add integration tests --- .../geoserver/rest/GeoServerRESTReader.java | 4 ++-- .../rest/decoder/about/GSVersionDecoder.java | 12 ++++------ .../geoserver/decoder/VersionDecoderTest.java | 23 ++++++++++++++++--- .../geoserver/rest/GeoserverRESTTest.java | 2 +- 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTReader.java b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTReader.java index dfee204..f5dc4a5 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTReader.java +++ b/src/main/java/it/geosolutions/geoserver/rest/GeoServerRESTReader.java @@ -172,11 +172,11 @@ public class GeoServerRESTReader { * Return the version of the target GeoServer */ public GSVersionDecoder getGeoserverVersion() { - final String url = baseurl + "/rest/about/version.xml"; + final String url = "/rest/about/version.xml"; String xml = load(url); if (xml == null) { GSVersionDecoder v = new GSVersionDecoder(); - v.getGeoServer().setVersion(GSVersionDecoder.VERSION.BEFORE); + v.getGeoServer().setVersion(GSVersionDecoder.VERSION.UNRECOGNIZED.toString()); return v; } else { return GSVersionDecoder.build(load(url)); diff --git a/src/main/java/it/geosolutions/geoserver/rest/decoder/about/GSVersionDecoder.java b/src/main/java/it/geosolutions/geoserver/rest/decoder/about/GSVersionDecoder.java index 2fb95c1..6f8eafb 100644 --- a/src/main/java/it/geosolutions/geoserver/rest/decoder/about/GSVersionDecoder.java +++ b/src/main/java/it/geosolutions/geoserver/rest/decoder/about/GSVersionDecoder.java @@ -119,7 +119,7 @@ public class GSVersionDecoder extends XmlElement { } public enum VERSION { - BEFORE(0), v21(21), v22(22), v23(23), v24(24), v25(25), ABOVE(9999), URECOGNIZED(-1); + v22(22), v23(23), v24(24), v25(25), ABOVE(9999), UNRECOGNIZED(-1); final private int version; @@ -136,10 +136,8 @@ public class GSVersionDecoder extends XmlElement { } public static VERSION getVersion(String v) { - if (v.matches("2\\.0.*") || v.matches("1\\..*")) { - return BEFORE; - } else if (v.matches("2\\.1.*")) { - return v21; + if (v==null) { + return UNRECOGNIZED; } else if (v.matches("2\\.2.*")) { return v22; } else if (v.matches("2\\.3.*")) { @@ -151,12 +149,12 @@ public class GSVersionDecoder extends XmlElement { } else if (v.matches("2\\..+")) { return ABOVE; } else { - return URECOGNIZED; + return UNRECOGNIZED; } } public static String print(){ - return "["+BEFORE+", "+v21+", "+v22+", "+v23+", "+v24+", "+v25+", "+ABOVE+"]"; + return "["+v22+", "+v23+", "+v24+", "+v25+", "+ABOVE+", "+UNRECOGNIZED+"]"; } } diff --git a/src/test/java/it/geosolutions/geoserver/decoder/VersionDecoderTest.java b/src/test/java/it/geosolutions/geoserver/decoder/VersionDecoderTest.java index 27c0176..7e922d2 100644 --- a/src/test/java/it/geosolutions/geoserver/decoder/VersionDecoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/decoder/VersionDecoderTest.java @@ -21,6 +21,9 @@ */ package it.geosolutions.geoserver.decoder; +import it.geosolutions.geoserver.rest.GeoServerRESTPublisher; +import it.geosolutions.geoserver.rest.GeoServerRESTReader; +import it.geosolutions.geoserver.rest.GeoserverRESTTest; import it.geosolutions.geoserver.rest.decoder.about.GSVersionDecoder; import it.geosolutions.geoserver.rest.decoder.about.GSVersionDecoder.VERSION; import junit.framework.Assert; @@ -45,7 +48,7 @@ import org.junit.Test; * * } */ -public class VersionDecoderTest { +public class VersionDecoderTest extends GeoserverRESTTest { private final String version = "10-Oct-2013 03:08" + "32db076555e57cc5f826b0361d1af4efe6d3f01b2.2-ENTERPRISE-SNAPSHOT"; @@ -54,18 +57,32 @@ public class VersionDecoderTest { public void testVersionDecoder() { GSVersionDecoder dec=new GSVersionDecoder(version); - Assert.assertEquals(VERSION.v22, dec.getVersion()); + Assert.assertEquals(GSVersionDecoder.VERSION.v22, dec.getVersion()); Assert.assertEquals("GeoServer", dec.getGeoServer().getName()); GSVersionDecoder.GSAboutResource geoserver=dec.getGeoServer(); geoserver.setVersion("2.3-SNAPSHOT"); geoserver.setName("_CustomGeoServerName_"); - Assert.assertEquals(VERSION.v23, dec.getVersion()); + Assert.assertEquals(GSVersionDecoder.VERSION.v23, dec.getVersion()); Assert.assertEquals("_CustomGeoServerName_", dec.getGeoServer().getName()); //print(dec.getRoot()); } + @Test + public void testIntegrationVersionDecoder() { + if (!enabled()) + return; + GSVersionDecoder geoserver = reader.getGeoserverVersion(); + if (GSVersionDecoder.VERSION.v22.equals(GSVersionDecoder.VERSION.getVersion(VERSION))) { + Assert.assertEquals(geoserver.getVersion(), GSVersionDecoder.VERSION.v22); + } else if (GSVersionDecoder.VERSION.UNRECOGNIZED.equals(GSVersionDecoder.VERSION + .getVersion(VERSION))) { + Assert.assertEquals(geoserver.getVersion(), GSVersionDecoder.VERSION.UNRECOGNIZED); + } + // print(dec.getRoot()); + } + public String print(Element e){ return new XMLOutputter().outputString(e); } diff --git a/src/test/java/it/geosolutions/geoserver/rest/GeoserverRESTTest.java b/src/test/java/it/geosolutions/geoserver/rest/GeoserverRESTTest.java index cb54927..ccf4c4b 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/GeoserverRESTTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/GeoserverRESTTest.java @@ -131,7 +131,7 @@ public abstract class GeoserverRESTTest extends Assert { } GSVersionDecoder v=reader.getGeoserverVersion(); - if (v.getVersion().equals(GSVersionDecoder.VERSION.getVersion(VERSION))){ + if (!v.getVersion().equals(GSVersionDecoder.VERSION.getVersion(VERSION))){ System.out.println("Failing tests : geoserver version does not match.\nAccepted versions: "+GSVersionDecoder.VERSION.print()); fail("GeoServer version ("+v.getVersion()+") does not match the desired one (+VERSION+)"); }