diff options
author | Seth Tisue <seth@tisue.net> | 2016-10-26 10:16:02 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-26 10:16:02 -0700 |
commit | 92db1dcc7f9bf7161bb986060d7151f86d5fca66 (patch) | |
tree | c4f5feff25613920a031b52285e3f19126d4e59b /test | |
parent | eff0aabb7824513498a4081072845001dbe4897f (diff) | |
parent | 10336958aba9b8af5f9127a4dc21c0899836ff8d (diff) | |
download | scala-92db1dcc7f9bf7161bb986060d7151f86d5fca66.tar.gz scala-92db1dcc7f9bf7161bb986060d7151f86d5fca66.tar.bz2 scala-92db1dcc7f9bf7161bb986060d7151f86d5fca66.zip |
Merge pull request #5276 from som-snytt/issue/9750
SI-9750 scala.util.Properties.isJavaAtLeast works with JDK9
Diffstat (limited to 'test')
-rw-r--r-- | test/junit/scala/util/SpecVersionTest.scala | 102 |
1 files changed, 74 insertions, 28 deletions
diff --git a/test/junit/scala/util/SpecVersionTest.scala b/test/junit/scala/util/SpecVersionTest.scala index e3e7a978f2..4639389dd9 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" @@ -21,37 +24,80 @@ class SpecVersionTest { override lazy val scalaProps = new java.util.Properties } + @Test + def comparesJDK9Correctly(): Unit = { + val sut9 = new TestProperties("9") + 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") + assert(sut9.isJavaAtLeast(9)) + assertFalse(sut9.isJavaAtLeast(10)) + assertFalse(sut9.isJavaAtLeast("10")) + } + // 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")) - } - @Test(expected = classOf[NumberFormatException]) - def badVersion(): Unit = { - sut isJavaAtLeast "1.a" + val sut7 = new TestProperties("1.7") + assert(sut7 isJavaAtLeast "1") + assert(sut7 isJavaAtLeast "1.5") + assert(sut7 isJavaAtLeast "5") + assert(sut7 isJavaAtLeast "1.6") + assert(sut7 isJavaAtLeast "1.7") + assert(sut7.isJavaAtLeast(7)) + assertFalse(sut7.isJavaAtLeast(9)) + assertFalse(sut7 isJavaAtLeast "1.8") + assertFalse(sut7 isJavaAtLeast "9") + assertFalse(sut7 isJavaAtLeast "10") } - @Test(expected = classOf[NumberFormatException]) - def missingVersion(): Unit = { - sut isJavaAtLeast "1" - } - @Test(expected = classOf[NumberFormatException]) - def noVersion(): Unit = { - sut isJavaAtLeast "" + + @Test def variousBadVersionStrings(): Unit = { + val sut = new TestProperties("9") + assertThrows[NumberFormatException](sut.isJavaAtLeast("1.9"), _ == "Not a version: 1.9") + assertThrows[NumberFormatException](sut.isJavaAtLeast("1.")) + assertThrows[NumberFormatException](sut.isJavaAtLeast("1.8.")) + assertThrows[NumberFormatException](sut.isJavaAtLeast("1.a")) + assertThrows[NumberFormatException](sut.isJavaAtLeast("")) + assertThrows[NumberFormatException](sut.isJavaAtLeast(".")) + assertThrows[NumberFormatException](sut.isJavaAtLeast("..")) + assertThrows[NumberFormatException](sut.isJavaAtLeast(".5")) + assertThrows[NumberFormatException](sut.isJavaAtLeast("9-ea")) //version number, not version string } - @Test(expected = classOf[NumberFormatException]) - def dotOnly(): Unit = { - sut isJavaAtLeast "." + + @Test def `spec has minor or more`(): Unit = { + val sut = new TestProperties("9.2.5") + assert(sut.isJavaAtLeast(9)) + assert(sut.isJavaAtLeast("9")) + assert(sut.isJavaAtLeast("9.0.1")) + assert(sut.isJavaAtLeast("9.2.1")) + assert(sut.isJavaAtLeast("8.3.1")) + assert(sut.isJavaAtLeast("8.3.1.1.1")) + assertFalse(sut.isJavaAtLeast("9.3.1")) + assertFalse(sut.isJavaAtLeast("10.3.1")) } - @Test(expected = classOf[NumberFormatException]) - def leadingDot(): Unit = { - sut isJavaAtLeast ".5" + + @Test def `compares only major minor security`(): Unit = { + val sut = new TestProperties("9.2.5.1.2.3") + assert(sut.isJavaAtLeast(9)) + assert(sut.isJavaAtLeast("9")) + assert(sut.isJavaAtLeast("9.0.1")) + assert(sut.isJavaAtLeast("9.2.5.9.9.9")) + assertFalse(sut.isJavaAtLeast("9.2.6")) } - @Test(expected = classOf[NumberFormatException]) - def notASpec(): Unit = { - sut isJavaAtLeast "1.7.1" + + @Test def `futurely proofed`(): Unit = { + val sut = new TestProperties("10.2.5") + assert(sut.isJavaAtLeast(9)) + assert(sut.isJavaAtLeast(10)) + assert(sut.isJavaAtLeast("9")) + assert(sut.isJavaAtLeast("9.0.1")) + assert(sut.isJavaAtLeast("9.2.1")) + assert(sut.isJavaAtLeast("8.3.1")) + assert(sut.isJavaAtLeast("8.3.1.1.1")) + assert(sut.isJavaAtLeast("9.3.1")) + assertFalse(sut.isJavaAtLeast("10.3.1")) } } |