nodejs: better sorting of node interpreters (first sort by version, then by path)
[idea/community.git] / platform / util / testSrc / com / intellij / util / text / SemVerTest.java
index 5edd5d925e869ba3ce4637170cf92f4b70e8f805..b8e0469f899f26750c3cc5511a24dc36f000b9c1 100644 (file)
  */
 package com.intellij.util.text;
 
-import org.junit.Assert;
-import org.junit.Test;
+import junit.framework.TestCase;
+import org.jetbrains.annotations.NotNull;
 
-/**
- * @author Sergey Simonchik
- */
-public class SemVerTest {
-  @Test
+public class SemVerTest extends TestCase {
   public void testParsing() throws Exception {
     String version = "0.9.2";
-    SemVer semVer = SemVer.parseFromText(version);
-    Assert.assertNotNull(semVer);
-    Assert.assertEquals(new SemVer(version, 0, 9, 2), semVer);
+    SemVer semVer = parseNotNull(version);
+    assertEquals(new SemVer(version, 0, 9, 2), semVer);
   }
 
-  @Test
   public void testExtendedVersion() throws Exception {
     String version = "0.9.2-dart";
-    SemVer semVer = SemVer.parseFromText(version);
-    Assert.assertNotNull(semVer);
-    Assert.assertEquals(new SemVer(version, 0, 9, 2), semVer);
+    SemVer semVer = parseNotNull(version);
+    assertEquals(new SemVer(version, 0, 9, 2), semVer);
+  }
+
+  public void testCompare() throws Exception {
+    assertTrue(parseNotNull("1.0.0").compareTo(parseNotNull("0.10.0")) > 0);
+    assertTrue(parseNotNull("1.0.0").compareTo(parseNotNull("2.10.0")) < 0);
+
+    assertTrue(parseNotNull("0.30.0").compareTo(parseNotNull("0.5.1000")) > 0);
+    assertTrue(parseNotNull("0.30.10").compareTo(parseNotNull("0.100.0")) < 0);
+
+    assertTrue(parseNotNull("2.9.123-test").compareTo(parseNotNull("2.9.100")) > 0);
+    assertTrue(parseNotNull("2.9.123-test").compareTo(parseNotNull("2.9.124")) < 0);
+
+    assertTrue(parseNotNull("11.123.0").compareTo(parseNotNull("11.123.0")) == 0);
+  }
+
+  @NotNull
+  private static SemVer parseNotNull(@NotNull String text) {
+    SemVer semVer = SemVer.parseFromText(text);
+    assertNotNull(semVer);
+    return semVer;
   }
 }