Skip to content

Commit 80c9264

Browse files
committed
Switch to scalatest and cross-compile to Scala 2.12
1 parent ec58714 commit 80c9264

File tree

10 files changed

+70
-78
lines changed

10 files changed

+70
-78
lines changed

build.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import ReleaseTransformations._
22

33
lazy val baseSettings = Seq(
4-
scalaVersion := "2.11.11",
5-
crossScalaVersions := Seq(scalaVersion.value, "2.10.6"),
4+
scalaVersion := "2.12.3",
5+
crossScalaVersions := Seq(scalaVersion.value, "2.11.11"),
66
organization := "com.madgag.scala-git",
77
scmInfo := Some(ScmInfo(
88
url("https://github.com/rtyley/scala-git"),

project/Dependencies.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ object Dependencies {
66
val eclipseJgit = "org.eclipse.jgit" % "org.eclipse.jgit" % "4.0.1.201506240215-r"
77
val jgit = eclipseJgit
88

9-
val specs2 = "org.specs2" %% "specs2" % "2.3.13"
9+
val scalatest = "org.scalatest" %% "scalatest" % "3.0.4"
1010

1111
val madgagCompress = "com.madgag" % "util-compress" % "1.33"
1212

project/build.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sbt.version=1.0.0
1+
sbt.version=1.0.2

project/plugins.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.6")
22

33
addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "2.0")
44

5-
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.0-M1")
5+
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.0")

scala-git/build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ description := "Scala veneer for JGit"
44

55
libraryDependencies ++= Seq(
66
jgit,
7-
specs2 % "test"
7+
scalatest % "test"
88
)

scala-git/src/main/scala/com/madgag/git/package.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import org.eclipse.jgit.treewalk.filter.{AndTreeFilter, TreeFilter}
3434
import org.eclipse.jgit.util.FS
3535

3636
import scala.annotation.tailrec
37-
import scala.collection.convert.wrapAsScala._
37+
import scala.collection.JavaConverters._
3838
import scala.language.implicitConversions
3939
import scala.util.{Success, Try}
4040

@@ -77,7 +77,7 @@ package object git {
7777
implicit class RichObjectDirectory(objectDirectory: ObjectDirectory) {
7878

7979
def packedObjects: Iterable[ObjectId] =
80-
for { pack <- objectDirectory.getPacks ; entry <- pack } yield entry.toObjectId
80+
for { pack <- objectDirectory.getPacks.asScala ; entry <- pack.asScala } yield entry.toObjectId
8181

8282
}
8383

@@ -91,7 +91,7 @@ package object git {
9191
(revWalk, revWalk.getObjectReader)
9292
}
9393

94-
def nonSymbolicRefs = repo.getAllRefs.values.filterNot(_.isSymbolic)
94+
def nonSymbolicRefs = repo.getAllRefs.asScala.values.filterNot(_.isSymbolic)
9595

9696
}
9797

@@ -237,7 +237,7 @@ package object git {
237237
}
238238

239239
implicit class RichObjectReader(reader: ObjectReader) {
240-
def resolveUniquely(id: AbbreviatedObjectId): Try[ObjectId] = Try(reader.resolve(id).toList).flatMap {
240+
def resolveUniquely(id: AbbreviatedObjectId): Try[ObjectId] = Try(reader.resolve(id).asScala.toList).flatMap {
241241
_ match {
242242
case fullId :: Nil => Success(fullId)
243243
case ids => val resolution = if (ids.isEmpty) "no Git object" else s"${ids.size} objects : ${ids.map(reader.abbreviate).map(_.name).mkString(",")}"
@@ -262,7 +262,7 @@ package object git {
262262
}
263263

264264
def diff(trees: RevTree*)(implicit reader: ObjectReader): Seq[DiffEntry] =
265-
DiffEntry.scan(walk(trees: _*)(TreeFilter.ANY_DIFF))
265+
DiffEntry.scan(walk(trees: _*)(TreeFilter.ANY_DIFF)).asScala
266266

267267
def allBlobsUnder(tree: RevTree)(implicit reader: ObjectReader): Set[ObjectId] =
268268
tree.walk().map(_.getObjectId(0)).toSet

scala-git/src/test/scala/com/madgag/git/ReachableBlobSpec.scala

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,17 @@
1616

1717
package com.madgag.git
1818

19-
import org.specs2.mutable._
19+
import org.scalatest.{FlatSpec, Matchers}
2020
import com.madgag.git.test._
2121

2222

23-
class ReachableBlobSpec extends Specification {
23+
class ReachableBlobSpec extends FlatSpec with Matchers {
2424

2525
implicit val repo = unpackRepo("/sample-repos/example.git.zip")
2626

27-
"reachable blobs" should {
28-
"match expectations" in {
29-
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
27+
"reachable blobs" should "match expectations" in {
28+
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
3029

31-
allBlobsReachableFrom(abbrId("475d") asRevCommit) mustEqual Set("d8d1", "34bd", "e69d", "c784", "d004").map(abbrId)
32-
}
30+
allBlobsReachableFrom(abbrId("475d") asRevCommit) shouldBe Set("d8d1", "34bd", "e69d", "c784", "d004").map(abbrId)
3331
}
3432
}

scala-git/src/test/scala/com/madgag/git/RichTreeWalkSpec.scala

Lines changed: 41 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -16,71 +16,72 @@
1616

1717
package com.madgag.git
1818

19-
import org.specs2.mutable._
20-
import collection.mutable
2119
import com.madgag.git.test._
20+
import org.scalatest.{FlatSpec, Matchers}
2221

22+
import scala.collection.mutable
2323

24-
class RichTreeWalkSpec extends Specification {
24+
class RichTreeWalkSpec extends FlatSpec with Matchers {
2525

2626
implicit val repo = unpackRepo("/sample-repos/example.git.zip")
2727

28-
"rich tree" should {
29-
"implement exists" in {
30-
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
28+
"rich tree" should "implement exists" in {
29+
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
3130

32-
val tree = abbrId("830e").asRevTree
31+
val tree = abbrId("830e").asRevTree
3332

34-
tree.walk().exists(_.getNameString == "one-kb-random") must beTrue
35-
tree.walk().exists(_.getNameString == "chimera") must beFalse
36-
}
37-
"implement map" in {
38-
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
33+
tree.walk().exists(_.getNameString == "one-kb-random") shouldBe true
34+
tree.walk().exists(_.getNameString == "chimera") shouldBe false
35+
}
36+
37+
it should "implement map" in {
38+
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
39+
40+
val tree = abbrId("830e").asRevTree
41+
42+
val fileNameList = tree.walk().map(_.getNameString).toList
3943

40-
val tree = abbrId("830e").asRevTree
44+
fileNameList should have size 6
4145

42-
val fileNameList = tree.walk().map(_.getNameString).toList
46+
fileNameList.groupBy(identity).mapValues(_.size) should contain ("zero" -> 2)
47+
}
48+
49+
it should "implement withFilter" in {
50+
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
4351

44-
fileNameList must haveSize(6)
52+
val tree = abbrId("830e").asRevTree
4553

46-
fileNameList.groupBy(identity).mapValues(_.size) must havePair("zero" -> 2)
47-
}
48-
"implement withFilter" in {
49-
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
54+
val filteredTreeWalk = tree.walk().withFilter(_.getNameString != "zero")
5055

51-
val tree = abbrId("830e").asRevTree
56+
val filenames = filteredTreeWalk.map(_.getNameString).toList
5257

53-
val filteredTreeWalk = tree.walk().withFilter(_.getNameString != "zero")
58+
filenames should have size 4
5459

55-
val filenames = filteredTreeWalk.map(_.getNameString).toList
60+
filenames should not contain "zero"
61+
}
5662

57-
filenames must haveSize(4)
63+
it should "implement foreach" in {
64+
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
5865

59-
filenames must not contain "zero"
60-
}
61-
"implement foreach" in {
62-
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
66+
val tree = abbrId("830e").asRevTree
6367

64-
val tree = abbrId("830e").asRevTree
68+
val fileNames = mutable.Buffer[String]()
6569

66-
val fileNames = mutable.Buffer[String]()
70+
tree.walk().foreach(tw => fileNames += tw.getNameString)
6771

68-
tree.walk().foreach(tw => fileNames += tw.getNameString)
72+
fileNames.toList should have size 6
73+
}
6974

70-
fileNames.toList must haveSize(6)
71-
}
72-
"work with for comprehensions" in {
73-
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
75+
it should "work with for comprehensions" in {
76+
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
7477

75-
val tree = abbrId("830e").asRevTree
78+
val tree = abbrId("830e").asRevTree
7679

77-
for (t <- tree.walk()) yield t.getNameString
80+
for (t <- tree.walk()) yield t.getNameString
7881

79-
for (t <- tree.walk()) { t.getNameString }
82+
for (t <- tree.walk()) { t.getNameString }
8083

81-
for (t <- tree.walk() if t.getNameString == "zero") { t.getDepth }
84+
for (t <- tree.walk() if t.getNameString == "zero") { t.getDepth }
8285

83-
success
84-
}
8586
}
8687
}

scala-git/src/test/scala/com/madgag/git/TreeOrBlobResolverSpec.scala

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,18 @@
1616

1717
package com.madgag.git
1818

19-
20-
import org.specs2.mutable._
21-
import collection.mutable
2219
import com.madgag.git.test._
20+
import org.scalatest.{EitherValues, FlatSpec, Matchers}
2321

24-
25-
class TreeOrBlobResolverSpec extends Specification {
22+
class TreeOrBlobResolverSpec extends FlatSpec with Matchers with EitherValues {
2623

2724
implicit val repo = unpackRepo("/sample-repos/annotatedTagExample.git.zip")
2825

29-
"annotated tag" should {
30-
"be correctly evaluated, not null" in {
31-
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
26+
"annotated tag" should "be correctly evaluated, not null" in {
27+
implicit val (revWalk, reader) = repo.singleThreadedReaderTuple
3228

33-
val annotatedTag = repo.resolve("chapter1").asRevTag
29+
val annotatedTag = repo.resolve("chapter1").asRevTag
3430

35-
treeOrBlobPointedToBy(annotatedTag) must beRight(abbrId("4c6a"))
36-
}
31+
treeOrBlobPointedToBy(annotatedTag).right.value shouldBe abbrId("4c6a")
3732
}
3833
}

scala-git/src/test/scala/com/madgag/git/model/TreeEntrySpec.scala

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,17 @@
1616

1717
package com.madgag.git.model
1818

19-
import org.eclipse.jgit.lib.ObjectId.zeroId
20-
import org.eclipse.jgit.lib.FileMode
21-
import FileMode._
22-
import org.specs2.mutable._
2319
import com.madgag.git.bfg.model.{FileName, Tree}
20+
import org.eclipse.jgit.lib.FileMode
21+
import org.eclipse.jgit.lib.FileMode._
22+
import org.eclipse.jgit.lib.ObjectId.zeroId
23+
import org.scalatest.{FlatSpec, Matchers}
2424

25-
class TreeEntrySpec extends Specification {
25+
class TreeEntrySpec extends FlatSpec with Matchers {
2626

2727
def a(mode: FileMode, name: String) = Tree.Entry(FileName(name), mode, zeroId)
2828

29-
"Tree entry ordering" should {
30-
"match ordering used by Git" in {
31-
a(TREE, "agit-test-utils") should be < a(TREE, "agit")
32-
}
29+
"Tree entry ordering" should "match ordering used by Git" in {
30+
a(TREE, "agit-test-utils") should be < a(TREE, "agit")
3331
}
3432
}

0 commit comments

Comments
 (0)