Add test for editor / server cdmlib version check
authorCherian Mathew <c.mathew@bgbm.org>
Thu, 8 Oct 2015 16:18:38 +0000 (18:18 +0200)
committerCherian Mathew <c.mathew@bgbm.org>
Thu, 8 Oct 2015 16:18:38 +0000 (18:18 +0200)
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java

index e5822e9eb35c0adc32620448ac50957b098888b5..f30a93dcdfb17d7949b400aae3de95c86093d459 100644 (file)
@@ -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<CdmServerInfo> getCdmServers() {
         if(cdmServerInfoList == null) {
             cdmServerInfoList = new ArrayList<CdmServerInfo>();
index 0a6b84b3227e8a074ab213156fa04e37ea7e2579..bddb7a0f34ae25778b6189847a83ce8fa862b74d 100644 (file)
@@ -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";
 
index f950b0473cea94addb938121babb9363f5ba2e9c..d968fe56471e8ad3c7d520f34c2096b908c557d4 100644 (file)
@@ -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() {