From: Cherian Mathew Date: Thu, 8 Oct 2015 16:18:38 +0000 (+0200) Subject: Add test for editor / server cdmlib version check X-Git-Tag: 3.12.0^2~104 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/7bc0185675b3cd634a16119272e7d09f8b1345e1 Add test for editor / server cdmlib version check --- diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java index e5822e9eb..f30a93dcd 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java @@ -296,10 +296,25 @@ public class CdmServerInfo { } public int compareCdmlibServicesVersion() throws CdmSourceException { - int result = 0; + String serverVersion = cdmlibServicesVersion; + String serverCdmlibLastModified = cdmlibServicesLastModified; + + return compareCdmlibServicesVersion(serverVersion, serverCdmlibLastModified); + } + + + /** + * @param serverVersion + * @param editorVersion + * @throws CdmSourceException + */ + public static int compareCdmlibServicesVersion(String serverVersion, String serverCdmlibLastModified) throws CdmSourceException { + String editorVersion = CdmApplicationState.getCdmlibVersion(); + String editorCdmlibLastModified = CdmApplicationState.getCdmlibLastModified(); + int result = 0; if(StringUtils.isBlank(serverVersion) || StringUtils.isBlank(editorVersion)) { throw new CdmSourceException("cdmlib-services server or editor version is empty"); } @@ -325,21 +340,22 @@ public class CdmServerInfo { } // at this point major, minor and patch versions are matching - if(StringUtils.isBlank(cdmlibServicesLastModified) || StringUtils.isBlank(CdmApplicationState.getCdmlibLastModified())) { + if(StringUtils.isBlank(serverCdmlibLastModified) || StringUtils.isBlank(editorCdmlibLastModified)) { throw new CdmSourceException("cdmlib-services server or editor version is empty"); } String cdmServerIgnoreVersion = System.getProperty("cdm.server.version.lm.ignore"); if(StringUtils.isBlank(cdmServerIgnoreVersion) || !cdmServerIgnoreVersion.equals("true")) { - Long serverLastModified = Long.valueOf(cdmlibServicesLastModified); - Long editorLastModified = Long.valueOf(CdmApplicationState.getCdmlibLastModified()); + Long serverLastModified = Long.valueOf(serverCdmlibLastModified); + Long editorLastModified = Long.valueOf(editorCdmlibLastModified); return serverLastModified.compareTo(editorLastModified); } return 0; - } + + public static List getCdmServers() { if(cdmServerInfoList == null) { cdmServerInfoList = new ArrayList(); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java index 0a6b84b32..bddb7a0f3 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java @@ -84,7 +84,7 @@ public class RemotingLoginDialog extends Dialog { private final static String STATUS_NOT_COMPATIBLE = "Not Compatible"; private final static String MESG_COMPATIBLE_EDITOR_OLD = "Please update the Taxonomic Editor (Help->Check for Updates) or choose a compatible cdm-server"; - private final static String MESG_COMPATIBLE_SERVER_OLD = "Please update the chosen cdm-server or choose a compatible cdm-server"; + private final static String MESG_COMPATIBLE_SERVER_OLD = "Please choose a compatible cdm-server or update the chosen cdm-server"; private final static String STORE_PREFERENCES_NODE = "eu.etaxonomy.taxeditor.store"; diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java index f950b0473..d968fe564 100644 --- a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java +++ b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java @@ -16,6 +16,8 @@ import org.junit.Ignore; import org.junit.Test; import org.unitils.UnitilsJUnit4; +import eu.etaxonomy.cdm.api.application.CdmApplicationState; +import eu.etaxonomy.cdm.config.CdmSourceException; import eu.etaxonomy.taxeditor.remoting.server.CDMServerException; import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo; import eu.etaxonomy.taxeditor.remoting.source.CdmServerInfo.CdmInstanceInfo; @@ -73,6 +75,47 @@ public class CdmServerInfoTest extends UnitilsJUnit4 { Assert.assertTrue(instances != null && !instances.isEmpty()); } + @Test + public void compareCdmlibServicesVersionTest() throws CdmSourceException { + String editorVersion = CdmApplicationState.getCdmlibVersion(); + String editorCdmlibLastModified = CdmApplicationState.getCdmlibLastModified(); + Long editorCdmlibLastModifiedLong = Long.valueOf(editorCdmlibLastModified); + + String[] editorVersionSplit = editorVersion.split("\\."); + + Assert.assertEquals(0, CdmServerInfo.compareCdmlibServicesVersion(editorVersion, editorCdmlibLastModified)); + + + int editorVersionMajor = Integer.valueOf(editorVersionSplit[0]); + int editorVersionMinor = Integer.valueOf(editorVersionSplit[1]); + int editorVersionPatch = Integer.valueOf(editorVersionSplit[2]); + + String serverVersionMajorNew = String.valueOf(editorVersionMajor+1) + "." + String.valueOf(editorVersionMinor) + "." + String.valueOf(editorVersionPatch); + Assert.assertTrue(CdmServerInfo.compareCdmlibServicesVersion(serverVersionMajorNew, editorCdmlibLastModified) > 0); + + String serverVersionMinorNew = String.valueOf(editorVersionMajor) + "." + String.valueOf(editorVersionMinor+1) + "." + String.valueOf(editorVersionPatch); + Assert.assertTrue(CdmServerInfo.compareCdmlibServicesVersion(serverVersionMinorNew, editorCdmlibLastModified) > 0); + + String serverVersionPatchNew = String.valueOf(editorVersionMajor) + "." + String.valueOf(editorVersionMinor) + "." + String.valueOf(editorVersionPatch+1); + Assert.assertTrue(CdmServerInfo.compareCdmlibServicesVersion(serverVersionPatchNew, editorCdmlibLastModified) > 0); + + String serverVersionMajorOld = String.valueOf(editorVersionMajor-1) + "." + String.valueOf(editorVersionMinor) + "." + String.valueOf(editorVersionPatch); + Assert.assertTrue(CdmServerInfo.compareCdmlibServicesVersion(serverVersionMajorOld, editorCdmlibLastModified) < 0); + + String serverVersionMinorOld = String.valueOf(editorVersionMajor) + "." + String.valueOf(editorVersionMinor-1) + "." + String.valueOf(editorVersionPatch); + Assert.assertTrue(CdmServerInfo.compareCdmlibServicesVersion(serverVersionMinorOld, editorCdmlibLastModified) < 0); + + String serverVersionPatchOld = String.valueOf(editorVersionMajor) + "." + String.valueOf(editorVersionMinor) + "." + String.valueOf(editorVersionPatch-1); + Assert.assertTrue(CdmServerInfo.compareCdmlibServicesVersion(serverVersionPatchOld, editorCdmlibLastModified) < 0); + + String serverCdmlibLastModifiedNew = String.valueOf(editorCdmlibLastModifiedLong+1); + Assert.assertTrue(CdmServerInfo.compareCdmlibServicesVersion(editorVersion, serverCdmlibLastModifiedNew) > 0); + + String serverCdmlibLastModifiedOld = String.valueOf(editorCdmlibLastModifiedLong-1); + Assert.assertTrue(CdmServerInfo.compareCdmlibServicesVersion(editorVersion, serverCdmlibLastModifiedOld) < 0); + + } + @Test public void convertToServerConfigTest() {