summaryrefslogblamecommitdiff
path: root/test/junit/scala/util/SpecVersionTest.scala
blob: e3e7a978f27d0248769b4aeb2af703a79661040b (plain) (tree)
1
2
3
4
5
6
7
8

                  





                               














                                                           
            





                                      
                                       









                                                  











                                                  



                             
package scala.util

import org.junit.Assert._
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.JUnit4

/** The java version property uses the spec version
 *  and must work for all "major.minor" and fail otherwise.
 */
@RunWith(classOf[JUnit4])
class SpecVersionTest {
  val sut = new PropertiesTrait {
    override def javaSpecVersion = "1.7"

    override protected def pickJarBasedOn: Class[_] = ???
    override protected def propCategory: String = "test"

    // override because of vals like releaseVersion
    override lazy val scalaProps = new java.util.Properties
  }

  // 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"
  }
  @Test(expected = classOf[NumberFormatException])
  def missingVersion(): Unit = {
    sut isJavaAtLeast "1"
  }
  @Test(expected = classOf[NumberFormatException])
  def noVersion(): Unit = {
    sut isJavaAtLeast ""
  }
  @Test(expected = classOf[NumberFormatException])
  def dotOnly(): Unit = {
    sut isJavaAtLeast "."
  }
  @Test(expected = classOf[NumberFormatException])
  def leadingDot(): Unit = {
    sut isJavaAtLeast ".5"
  }
  @Test(expected = classOf[NumberFormatException])
  def notASpec(): Unit = {
    sut isJavaAtLeast "1.7.1"
  }
}