summaryrefslogtreecommitdiff
path: root/test/junit/scala/util/SpecVersionTest.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/junit/scala/util/SpecVersionTest.scala')
-rw-r--r--test/junit/scala/util/SpecVersionTest.scala56
1 files changed, 39 insertions, 17 deletions
diff --git a/test/junit/scala/util/SpecVersionTest.scala b/test/junit/scala/util/SpecVersionTest.scala
index e3e7a978f2..2b69f288fa 100644
--- a/test/junit/scala/util/SpecVersionTest.scala
+++ b/test/junit/scala/util/SpecVersionTest.scala
@@ -6,13 +6,16 @@ import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4
+import scala.tools.testing.AssertUtil._
+
/** The java version property uses the spec version
- * and must work for all "major.minor" and fail otherwise.
+ * and must work for legacy "major.minor" and plain version_number,
+ * and fail otherwise.
*/
@RunWith(classOf[JUnit4])
class SpecVersionTest {
- val sut = new PropertiesTrait {
- override def javaSpecVersion = "1.7"
+ class TestProperties(versionAt: String) extends PropertiesTrait {
+ override def javaSpecVersion = versionAt
override protected def pickJarBasedOn: Class[_] = ???
override protected def propCategory: String = "test"
@@ -20,38 +23,57 @@ class SpecVersionTest {
// override because of vals like releaseVersion
override lazy val scalaProps = new java.util.Properties
}
+ val sut7 = new TestProperties("1.7")
+ val sut9 = new TestProperties("9")
+
+ @Test
+ def comparesJDK9Correctly(): Unit = {
+ assert(sut9 isJavaAtLeast "1")
+ assert(sut9 isJavaAtLeast "1.5")
+ assert(sut9 isJavaAtLeast "5")
+ assert(sut9 isJavaAtLeast "1.8")
+ assert(sut9 isJavaAtLeast "8")
+ assert(sut9 isJavaAtLeast "9")
+ }
// SI-7265
@Test
def comparesCorrectly(): Unit = {
- assert(sut isJavaAtLeast "1.5")
- assert(sut isJavaAtLeast "1.6")
- assert(sut isJavaAtLeast "1.7")
- assert(!(sut isJavaAtLeast "1.8"))
- assert(!(sut isJavaAtLeast "1.71"))
+ assert(sut7 isJavaAtLeast "1")
+ assert(sut7 isJavaAtLeast "1.5")
+ assert(sut7 isJavaAtLeast "5")
+ assert(sut7 isJavaAtLeast "1.6")
+ assert(sut7 isJavaAtLeast "1.7")
+ assertFalse(sut7 isJavaAtLeast "1.8")
+ assertFalse(sut7 isJavaAtLeast "9")
+ assertFalse(sut7 isJavaAtLeast "10")
}
- @Test(expected = classOf[NumberFormatException])
- def badVersion(): Unit = {
- sut isJavaAtLeast "1.a"
+
+ @Test def variousBadVersionStrings(): Unit = {
+ assertThrows[NumberFormatException] { sut7 isJavaAtLeast "1.9" }
+ assertThrows[NumberFormatException] { sut9 isJavaAtLeast "1.9" }
+ assertThrows[NumberFormatException] { sut7 isJavaAtLeast "9.1" }
+ assertThrows[NumberFormatException] { sut9 isJavaAtLeast "9.1" }
}
+
@Test(expected = classOf[NumberFormatException])
- def missingVersion(): Unit = {
- sut isJavaAtLeast "1"
+ def badVersion(): Unit = {
+ sut7 isJavaAtLeast "1.a"
}
@Test(expected = classOf[NumberFormatException])
def noVersion(): Unit = {
- sut isJavaAtLeast ""
+ sut7 isJavaAtLeast ""
}
@Test(expected = classOf[NumberFormatException])
def dotOnly(): Unit = {
- sut isJavaAtLeast "."
+ sut7 isJavaAtLeast "."
}
@Test(expected = classOf[NumberFormatException])
def leadingDot(): Unit = {
- sut isJavaAtLeast ".5"
+ sut7 isJavaAtLeast ".5"
}
@Test(expected = classOf[NumberFormatException])
def notASpec(): Unit = {
- sut isJavaAtLeast "1.7.1"
+ sut7 isJavaAtLeast "1.7.1"
}
}