Skip to content

Commit

Permalink
Update and add tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
mrdziuban committed Nov 23, 2020
1 parent cd2eddb commit e1cdd04
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 35 deletions.
3 changes: 2 additions & 1 deletion src/sbt-test/sbt-tpolecat/scalacOptions/build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ val scala2Versions = Seq(
"2.10.7",
"2.11.12",
"2.12.12",
"2.13.3"
"2.13.3",
"2.13.4"
)

crossScalaVersions := (CrossVersion.partialVersion(sbtVersion.value) match {
Expand Down
116 changes: 82 additions & 34 deletions src/test/scala/io/github/davidgregory084/TpolecatPluginSuite.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ class TpolecatPluginSuite extends AnyFunSuite with ScalaCheckDrivenPropertyCheck
val versionGen = Gen.chooseNum(0L, 20L)

test("valid when neither addedIn nor removedIn") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val scalacOption = ScalacOption("-some-opt", None, None)
assert(
validFor(currentVersion)(scalacOption),
Expand All @@ -23,9 +23,9 @@ class TpolecatPluginSuite extends AnyFunSuite with ScalaCheckDrivenPropertyCheck
}

test("valid when added in past major release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
val addedVersion = Version(currentMaj - 1, 0)
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val addedVersion = Version(currentMaj - 1, 0, 0)
val scalacOption = ScalacOption("-some-opt", addedIn = Some(addedVersion))
assert(
validFor(currentVersion)(scalacOption),
Expand All @@ -35,9 +35,9 @@ class TpolecatPluginSuite extends AnyFunSuite with ScalaCheckDrivenPropertyCheck
}

test("valid when added in past minor release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
val addedVersion = Version(currentMaj, currentMin - 1)
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val addedVersion = Version(currentMaj, currentMin - 1, 0)
val scalacOption = ScalacOption("-some-opt", addedIn = Some(addedVersion))
assert(
validFor(currentVersion)(scalacOption),
Expand All @@ -46,21 +46,33 @@ class TpolecatPluginSuite extends AnyFunSuite with ScalaCheckDrivenPropertyCheck
}
}

test("valid when added in this minor release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
test("valid when added in past patch release") {
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val addedVersion = Version(currentMaj, currentMin, currentPatch - 1)
val scalacOption = ScalacOption("-some-opt", addedIn = Some(addedVersion))
assert(
validFor(currentVersion)(scalacOption),
"Should be valid when addedIn matches past patch release"
)
}
}

test("valid when added in this minor/patch release") {
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val scalacOption = ScalacOption("-some-opt", addedIn = Some(currentVersion))
assert(
validFor(currentVersion)(scalacOption),
"Should be valid when addedIn matches this minor release"
"Should be valid when addedIn matches this minor/patch release"
)
}
}

test("not valid when added in a future major release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
val addedVersion = Version(currentMaj + 1, currentMin)
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val addedVersion = Version(currentMaj + 1, currentMin, currentPatch)
val scalacOption = ScalacOption("-some-opt", addedIn = Some(addedVersion))
assert(
!validFor(currentVersion)(scalacOption),
Expand All @@ -70,9 +82,9 @@ class TpolecatPluginSuite extends AnyFunSuite with ScalaCheckDrivenPropertyCheck
}

test("not valid when added in a future minor release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
val addedVersion = Version(currentMaj, currentMin + 1)
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val addedVersion = Version(currentMaj, currentMin + 1, currentPatch)
val scalacOption = ScalacOption("-some-opt", addedIn = Some(addedVersion))
assert(
!validFor(currentVersion)(scalacOption),
Expand All @@ -81,10 +93,22 @@ class TpolecatPluginSuite extends AnyFunSuite with ScalaCheckDrivenPropertyCheck
}
}

test("not valid when added in a future patch release") {
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val addedVersion = Version(currentMaj, currentMin, currentPatch + 1)
val scalacOption = ScalacOption("-some-opt", addedIn = Some(addedVersion))
assert(
!validFor(currentVersion)(scalacOption),
"Should not be valid when addedIn matches a future patch release"
)
}
}

test("valid when removed in next major release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
val removedVersion = Version(currentMaj + 1, 0)
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val removedVersion = Version(currentMaj + 1, 0, 0)
val scalacOption = ScalacOption("-some-opt", None, removedIn = Some(removedVersion))
assert(
validFor(currentVersion)(scalacOption),
Expand All @@ -94,9 +118,9 @@ class TpolecatPluginSuite extends AnyFunSuite with ScalaCheckDrivenPropertyCheck
}

test("valid when removed in next minor release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
val removedVersion = Version(currentMaj, currentMin + 1)
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val removedVersion = Version(currentMaj, currentMin + 1, currentPatch)
val scalacOption = ScalacOption("-some-opt", None, removedIn = Some(removedVersion))
assert(
validFor(currentVersion)(scalacOption),
Expand All @@ -105,21 +129,33 @@ class TpolecatPluginSuite extends AnyFunSuite with ScalaCheckDrivenPropertyCheck
}
}

test("not valid when removed in this minor release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
test("valid when removed in next patch release") {
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val removedVersion = Version(currentMaj, currentMin, currentPatch + 1)
val scalacOption = ScalacOption("-some-opt", None, removedIn = Some(removedVersion))
assert(
validFor(currentVersion)(scalacOption),
"Should be valid when removedIn matches next patch release"
)
}
}

test("not valid when removed in this minor/patch release") {
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val scalacOption = ScalacOption("-some-opt", None, removedIn = Some(currentVersion))
assert(
!validFor(currentVersion)(scalacOption),
"Should not be valid when removedIn matches this minor release"
"Should not be valid when removedIn matches this minor/patch release"
)
}
}

test("not valid when removed in an old major release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
val removedVersion = Version(currentMaj - 1, currentMin)
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val removedVersion = Version(currentMaj - 1, currentMin, currentPatch)
val scalacOption = ScalacOption("-some-opt", None, removedIn = Some(removedVersion))
assert(
!validFor(currentVersion)(scalacOption),
Expand All @@ -129,14 +165,26 @@ class TpolecatPluginSuite extends AnyFunSuite with ScalaCheckDrivenPropertyCheck
}

test("not valid when removed in an old minor release") {
forAll(versionGen, versionGen) { (currentMaj: Long, currentMin: Long) =>
val currentVersion = Version(currentMaj, currentMin)
val removedVersion = Version(currentMaj, currentMin - 1)
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val removedVersion = Version(currentMaj, currentMin - 1, currentPatch)
val scalacOption = ScalacOption("-some-opt", None, removedIn = Some(removedVersion))
assert(
!validFor(currentVersion)(scalacOption),
"Should not be valid when removedIn matches an old minor release"
)
}
}

test("not valid when removed in an old patch release") {
forAll(versionGen, versionGen, versionGen) { (currentMaj: Long, currentMin: Long, currentPatch: Long) =>
val currentVersion = Version(currentMaj, currentMin, currentPatch)
val removedVersion = Version(currentMaj, currentMin, currentPatch - 1)
val scalacOption = ScalacOption("-some-opt", None, removedIn = Some(removedVersion))
assert(
!validFor(currentVersion)(scalacOption),
"Should not be valid when removedIn matches an old patch release"
)
}
}
}

0 comments on commit e1cdd04

Please sign in to comment.