Skip to content

Commit 9cd33ce

Browse files
committed
test: changed all test from spec2 to munit
1 parent 73b7e40 commit 9cd33ce

File tree

70 files changed

+1994
-2295
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1994
-2295
lines changed

build.sbt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ licenses += ("Apache-2.0", url("https://www.apache.org/licenses/LICENSE-2.0.html
4343
//crossScalaVersions := Seq("2.13.16")
4444
crossScalaVersions := Seq("3.6.0", "2.13.16")
4545

46-
scalaVersion := crossScalaVersions.value.head
46+
scalaVersion := crossScalaVersions.value.last
4747

4848
scalacOptions += "-deprecation"
4949

@@ -60,12 +60,6 @@ buildInfoOptions += BuildInfoOption.BuildTime
6060

6161
resolvers += "Sonatype OSS Snapshots".at("https://oss.sonatype.org/content/repositories/snapshots")
6262

63-
// Test
64-
65-
libraryDependencies += "org.specs2" %% "specs2-core" % "4.20.9" % Test
66-
67-
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.16" % Test
68-
6963
libraryDependencies += "joda-time" % "joda-time" % "2.13.0"
7064

7165
val circeVersion = "0.14.10"
@@ -96,14 +90,12 @@ libraryDependencies += "com.typesafe" % "config" % "1.4.3"
9690

9791
libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.9.5"
9892

99-
libraryDependencies += "org.scala-lang.modules" %% "scala-collection-compat" % "2.12.0"
93+
//libraryDependencies += "org.scala-lang.modules" %% "scala-collection-compat" % "2.12.0"
10094

10195
libraryDependencies += "com.vdurmont" % "semver4j" % "3.1.0"
10296

10397
libraryDependencies += "com.github.jsqlparser" % "jsqlparser" % "5.1"
10498

105-
libraryDependencies += "org.liquibase" % "liquibase-core" % "4.31.0" % Test
106-
10799
buildInfoPackage := "dev.mongocamp.driver.mongodb"
108100

109101
buildInfoOptions += BuildInfoOption.BuildTime

build_test.sbt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Test / parallelExecution := false
2+
3+
libraryDependencies += "org.liquibase" % "liquibase-core" % "4.31.0" % Test
4+
5+
// Test
6+
7+
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.16" % Test
8+
9+
libraryDependencies += "org.scalameta" %% "munit" % "1.1.0"

docker.sh

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,2 @@
11
docker rm -f mongodb;
2-
docker run -d --publish 27017:27017 --name mongodb mongocamp/mongodb:latest;
3-
4-
5-
#
6-
# [error] Error during tests:
7-
# [error] dev.mongocamp.driver.mongodb.sync.SyncSpec
8-
# [error] dev.mongocamp.driver.mongodb.sql.SelectSqlSpec
9-
# [error] dev.mongocamp.driver.mongodb.dao.StudentDAOSpec
10-
# [error] dev.mongocamp.driver.mongodb.sql.OtherSqlSpec
2+
docker run -d --publish 27017:27017 --name mongodb mongocamp/mongodb:latest;

src/test/scala/dev/mongocamp/driver/mongodb/CompactSpec.scala

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,38 @@ import better.files.{ File, Resource }
44
import dev.mongocamp.driver.mongodb.database.CompactResult
55
import dev.mongocamp.driver.mongodb.test.TestDatabase
66
import dev.mongocamp.driver.mongodb.test.TestDatabase.BookDAO
7-
import org.specs2.mutable.Specification
8-
import org.specs2.specification.BeforeAll
7+
import munit.FunSuite
98

109
import java.text.SimpleDateFormat
1110
import java.util.Date
1211

13-
class CompactSpec extends Specification with BeforeAll {
12+
class CompactSpec extends FunSuite {
1413
val DateFormat = new SimpleDateFormat("yyyy-MM-dd")
1514
val From: Date = DateFormat.parse("2000-01-01")
1615

1716
override def beforeAll(): Unit = {
17+
super.beforeAll()
1818
BookDAO.drop().result()
1919
BookDAO.importJsonFile(File(Resource.getUrl("json/books.json"))).result()
2020
val stats = BookDAO.collectionStatus.result()
21-
stats.count mustEqual 431
21+
assertEquals(stats.count, 431)
2222
}
2323

24-
"CompactSpec" should {
25-
"compact single collection" in {
26-
val count: Option[CompactResult] = BookDAO.compact.result()
27-
count.isDefined must beTrue
28-
count.get.bytesFreed must beGreaterThanOrEqualTo(0L)
29-
}
30-
"compact complete database" in {
31-
val count: List[CompactResult] = TestDatabase.provider.compactDatabase()
32-
count.size must beGreaterThanOrEqualTo(1)
33-
count.head.bytesFreed must beGreaterThanOrEqualTo(0L)
34-
}
35-
"compact all databases in scope" in {
36-
val count: List[CompactResult] = TestDatabase.provider.compact()
37-
count.size must beGreaterThanOrEqualTo(1)
38-
count.head.bytesFreed must beGreaterThanOrEqualTo(0L)
39-
}
24+
test("compact single collection") {
25+
val count: Option[CompactResult] = BookDAO.compact.result()
26+
assertEquals(count.isDefined, true)
27+
assertEquals(count.get.bytesFreed >= 0L, true)
4028
}
4129

30+
test("compact complete database") {
31+
val count: List[CompactResult] = TestDatabase.provider.compactDatabase()
32+
assertEquals(count.nonEmpty, true)
33+
assertEquals(count.head.bytesFreed >= 0L, true)
34+
}
35+
36+
test("compact all databases in scope") {
37+
val count: List[CompactResult] = TestDatabase.provider.compact()
38+
assertEquals(count.nonEmpty, true)
39+
assertEquals(count.head.bytesFreed >= 0L, true)
40+
}
4241
}

src/test/scala/dev/mongocamp/driver/mongodb/bson/BsonConverterSpec.scala

Lines changed: 0 additions & 108 deletions
This file was deleted.
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package dev.mongocamp.driver.mongodb.bson
2+
3+
import com.typesafe.scalalogging.LazyLogging
4+
import dev.mongocamp.driver.mongodb._
5+
import org.mongodb.scala.bson.collection.mutable
6+
import org.mongodb.scala.bson.{ ObjectId, _ }
7+
8+
import scala.collection.mutable.ArrayBuffer
9+
10+
class BsonConverterSuite extends munit.FunSuite {
11+
12+
test("BsonConverter convert values to BSON") {
13+
assertEquals(BsonConverter.toBson(3), BsonInt32(3))
14+
assertEquals(BsonConverter.toBson(3L), BsonInt64(3))
15+
assertEquals(BsonConverter.toBson(3f), BsonDouble(3))
16+
assertEquals(BsonConverter.toBson(3d), BsonDouble(3))
17+
18+
assertEquals(BsonConverter.toBson(false), BsonBoolean(false))
19+
assertEquals(BsonConverter.toBson(true), BsonBoolean(true))
20+
21+
assertEquals(BsonConverter.toBson(java.math.BigDecimal.TEN), BsonDecimal128.apply(10))
22+
assertEquals(BsonConverter.toBson(BigDecimal(10)), BsonDecimal128.apply(10))
23+
assertEquals(BsonConverter.toBson(BigInt(10)), BsonInt64(10))
24+
assertEquals(BsonConverter.toBson(java.math.BigInteger.TEN), BsonInt64(10))
25+
26+
assertEquals(BsonConverter.toBson(Some(5)), BsonInt32(5))
27+
28+
assertEquals(BsonConverter.toBson(Some(new ObjectId("5b61455932ac3f0015ae2e7e"))), BsonObjectId("5b61455932ac3f0015ae2e7e"))
29+
30+
assertEquals(BsonConverter.toBson(None), BsonNull())
31+
32+
assertEquals(BsonConverter.toBson('M'), BsonString("M"))
33+
}
34+
35+
test("convert Map to BSON") {
36+
assertEquals(BsonConverter.toBson(Map("test" -> 1)).isInstanceOf[org.bson.BsonDocument], true)
37+
assertEquals(BsonConverter.toBson(scala.collection.mutable.Map("test" -> 1)).isInstanceOf[org.bson.BsonDocument], true)
38+
}
39+
40+
test("convert List to BSON") {
41+
assertEquals(BsonConverter.toBson(List("test")).isInstanceOf[org.bson.BsonArray], true)
42+
val buffer = new ArrayBuffer[String]()
43+
buffer.+=("Test")
44+
assertEquals(BsonConverter.toBson(buffer).isInstanceOf[org.bson.BsonArray], true)
45+
}
46+
47+
test("convert values from BSON") {
48+
assertEquals(BsonConverter.fromBson(BsonInt32(3)), 3)
49+
assertEquals(BsonConverter.fromBson(BsonInt64(3)), 3L)
50+
assertEquals(BsonConverter.fromBson(BsonDouble(3)), 3.0)
51+
}
52+
53+
test("evaluate dot notation") {
54+
val document: mutable.Document = mutable.Document()
55+
val secondLevelDocument = mutable.Document()
56+
secondLevelDocument.put("test", 42)
57+
document.put("secondLevelDocument", secondLevelDocument)
58+
59+
assertEquals(document.get("secondLevelDocument").isDefined, true)
60+
assertEquals(document.get("secondLevelDocument.test").isEmpty, true)
61+
62+
val v = BsonConverter.documentValueOption(Document(document.toJson()), "secondLevelDocument.test")
63+
assertEquals(v.isDefined, true)
64+
65+
}
66+
67+
test("evaluate get with dot notation") {
68+
val document: mutable.Document = mutable.Document()
69+
val secondLevelDocument = mutable.Document()
70+
secondLevelDocument.put("test", 42)
71+
document.put("secondLevelDocument", secondLevelDocument)
72+
73+
assertEquals(document.get("secondLevelDocument").isDefined, true)
74+
assertEquals(document.get("secondLevelDocument.test"), None)
75+
76+
val v = BsonConverter.documentValueOption(Document(document.toJson()), "secondLevelDocument.test")
77+
78+
assertEquals(v.isDefined, true)
79+
}
80+
81+
test("evaluate put with dot notation") {
82+
val document = Document()
83+
84+
var updated: Document = BsonConverter.updateDocumentValue(document, "test", 42)
85+
86+
assertEquals(updated.getIntValue("test"), 42)
87+
88+
updated = BsonConverter.updateDocumentValue(document, "test.test.test.test", 42)
89+
90+
assertEquals(updated.getIntValue("test.test.test.test"), 42)
91+
}
92+
93+
}

src/test/scala/dev/mongocamp/driver/mongodb/bson/ConverterSpec.scala

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package dev.mongocamp.driver.mongodb.bson
2+
3+
import dev.mongocamp.driver.mongodb.Converter
4+
import dev.mongocamp.driver.mongodb.model.Base
5+
6+
class ConverterSuite extends munit.FunSuite {
7+
8+
test("Converter support Document roundtrip") {
9+
val base = Base()
10+
val document = Converter.toDocument(base)
11+
val integer: Int = document.getInteger("int")
12+
val long: Long = document.getLong("Long")
13+
val float : Float = document.getDouble("float").floatValue()
14+
val double : Double = document.getDouble("double")
15+
val maybeBsonValue = document.get("option")
16+
17+
assertEquals(integer, base.int)
18+
assertEquals(long, base.Long)
19+
assertEquals(float, base.float)
20+
assertEquals(double, base.double)
21+
assertEquals(document.getString("string"), base.string)
22+
assertEquals(document.getDate("date"), base.date)
23+
assertEquals(maybeBsonValue.isDefined, true)
24+
assertEquals(maybeBsonValue.get.asObjectId().getValue, base.option.get)
25+
assertEquals(base != null, true)
26+
assertEquals(base.isInstanceOf[Base], true)
27+
}
28+
29+
}

0 commit comments

Comments
 (0)