Skip to content

Commit 7a0b575

Browse files
jtjeferreirarozza
authored andcommitted
Scala use mockito instead of scalamock
scalamock does not support scala3 scalamock/scalamock#429 JAVA-4181
1 parent 8977afa commit 7a0b575

19 files changed

+467
-447
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ configure(scalaProjects) {
109109
testImplementation('org.scalatest:scalatest-flatspec_%%:3.2.9')
110110
testImplementation('org.scalatest:scalatest-shouldmatchers_%%:3.2.9')
111111
testImplementation('org.scalatestplus:junit-4-13_%%:3.2.9.0')
112-
testImplementation('org.scalamock:scalamock_%%:4.4.0')
112+
testImplementation('org.scalatestplus:mockito-3-12_%%:3.2.10.0')
113113
testImplementation('ch.qos.logback:logback-classic:1.1.3')
114114
testImplementation('org.reflections:reflections:0.9.10')
115115
}

driver-scala/src/test/scala/org/mongodb/scala/AggregateObservableSpec.scala

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,13 @@ import com.mongodb.ExplainVerbosity
2020

2121
import java.util.concurrent.TimeUnit
2222
import com.mongodb.reactivestreams.client.AggregatePublisher
23+
import org.mockito.Mockito.{ verify, verifyNoMoreInteractions }
2324
import org.mongodb.scala.model.Collation
24-
import org.scalamock.scalatest.proxy.MockFactory
25+
import org.scalatestplus.mockito.MockitoSugar
2526

2627
import scala.concurrent.duration.Duration
2728

28-
class AggregateObservableSpec extends BaseSpec with MockFactory {
29+
class AggregateObservableSpec extends BaseSpec with MockitoSugar {
2930

3031
"AggregateObservable" should "have the same methods as the wrapped AggregateObservable" in {
3132
val wrapped: Set[String] = classOf[AggregatePublisher[Document]].getMethods.map(_.getName).toSet
@@ -48,17 +49,6 @@ class AggregateObservableSpec extends BaseSpec with MockFactory {
4849
val ct = classOf[Document]
4950
val verbosity = ExplainVerbosity.QUERY_PLANNER
5051

51-
wrapper.expects(Symbol("allowDiskUse"))(true).once()
52-
wrapper.expects(Symbol("maxTime"))(duration.toMillis, TimeUnit.MILLISECONDS).once()
53-
wrapper.expects(Symbol("maxAwaitTime"))(duration.toMillis, TimeUnit.MILLISECONDS).once()
54-
wrapper.expects(Symbol("bypassDocumentValidation"))(true).once()
55-
wrapper.expects(Symbol("collation"))(collation).once()
56-
wrapper.expects(Symbol("comment"))("comment").once()
57-
wrapper.expects(Symbol("hint"))(hint).once()
58-
wrapper.expects(Symbol("batchSize"))(batchSize).once()
59-
wrapper.expects(Symbol("explain"))(ct).once()
60-
wrapper.expects(Symbol("explain"))(ct, verbosity).once()
61-
6252
observable.allowDiskUse(true)
6353
observable.maxTime(duration)
6454
observable.maxAwaitTime(duration)
@@ -70,7 +60,20 @@ class AggregateObservableSpec extends BaseSpec with MockFactory {
7060
observable.explain[Document]()
7161
observable.explain[Document](verbosity)
7262

73-
wrapper.expects(Symbol("toCollection"))().once()
63+
verify(wrapper).allowDiskUse(true)
64+
verify(wrapper).maxTime(duration.toMillis, TimeUnit.MILLISECONDS)
65+
verify(wrapper).maxAwaitTime(duration.toMillis, TimeUnit.MILLISECONDS)
66+
verify(wrapper).bypassDocumentValidation(true)
67+
verify(wrapper).collation(collation)
68+
verify(wrapper).comment("comment")
69+
verify(wrapper).hint(hint)
70+
verify(wrapper).batchSize(batchSize)
71+
verify(wrapper).explain(ct)
72+
verify(wrapper).explain(ct, verbosity)
73+
7474
observable.toCollection()
75+
verify(wrapper).toCollection
76+
77+
verifyNoMoreInteractions(wrapper)
7578
}
7679
}

driver-scala/src/test/scala/org/mongodb/scala/ChangeStreamObservableSpec.scala

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,17 @@ package org.mongodb.scala
1919
import java.util.concurrent.TimeUnit
2020

2121
import com.mongodb.reactivestreams.client.ChangeStreamPublisher
22+
import org.mockito.Mockito.{ verify, verifyNoMoreInteractions }
2223
import org.mongodb.scala.bson.BsonTimestamp
2324
import org.mongodb.scala.model.Collation
2425
import org.mongodb.scala.model.changestream.FullDocument
2526
import org.reactivestreams.Publisher
26-
import org.scalamock.scalatest.proxy.MockFactory
27+
import org.scalatestplus.mockito.MockitoSugar
2728

2829
import scala.concurrent.duration.Duration
29-
import scala.util.{ Success }
30+
import scala.util.Success
3031

31-
class ChangeStreamObservableSpec extends BaseSpec with MockFactory {
32+
class ChangeStreamObservableSpec extends BaseSpec with MockitoSugar {
3233

3334
"ChangeStreamObservable" should "have the same methods as the wrapped ChangeStreamObservable" in {
3435
val mongoPublisher: Set[String] = classOf[Publisher[Document]].getMethods.map(_.getName).toSet
@@ -54,15 +55,6 @@ class ChangeStreamObservableSpec extends BaseSpec with MockFactory {
5455
val collation = Collation.builder().locale("en").build()
5556
val batchSize = 10
5657

57-
wrapper.expects(Symbol("batchSize"))(batchSize).once()
58-
wrapper.expects(Symbol("fullDocument"))(fullDocument).once()
59-
wrapper.expects(Symbol("resumeAfter"))(resumeToken.underlying).once()
60-
wrapper.expects(Symbol("startAfter"))(resumeToken.underlying).once()
61-
wrapper.expects(Symbol("startAtOperationTime"))(startAtTime).once()
62-
wrapper.expects(Symbol("maxAwaitTime"))(duration.toMillis, TimeUnit.MILLISECONDS).once()
63-
wrapper.expects(Symbol("collation"))(collation).once()
64-
wrapper.expects(Symbol("withDocumentClass"))(classOf[Int]).once()
65-
6658
observable.batchSize(batchSize)
6759
observable.fullDocument(fullDocument)
6860
observable.resumeAfter(resumeToken)
@@ -71,6 +63,17 @@ class ChangeStreamObservableSpec extends BaseSpec with MockFactory {
7163
observable.maxAwaitTime(duration)
7264
observable.collation(collation)
7365
observable.withDocumentClass(classOf[Int])
66+
67+
verify(wrapper).batchSize(batchSize)
68+
verify(wrapper).fullDocument(fullDocument)
69+
verify(wrapper).resumeAfter(resumeToken.underlying)
70+
verify(wrapper).startAfter(resumeToken.underlying)
71+
verify(wrapper).startAtOperationTime(startAtTime)
72+
verify(wrapper).maxAwaitTime(duration.toMillis, TimeUnit.MILLISECONDS)
73+
verify(wrapper).collation(collation)
74+
verify(wrapper).withDocumentClass(classOf[Int])
75+
76+
verifyNoMoreInteractions(wrapper)
7477
}
7578

7679
it should "mirror FullDocument" in {

driver-scala/src/test/scala/org/mongodb/scala/DistinctObservableSpec.scala

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@ package org.mongodb.scala
1818
import java.util.concurrent.TimeUnit
1919

2020
import com.mongodb.reactivestreams.client.DistinctPublisher
21+
import org.mockito.Mockito.{ verify, verifyNoMoreInteractions }
2122
import org.mongodb.scala.model.Collation
2223
import org.reactivestreams.Publisher
23-
import org.scalamock.scalatest.proxy.MockFactory
24+
import org.scalatestplus.mockito.MockitoSugar
2425

2526
import scala.concurrent.duration.Duration
2627

27-
class DistinctObservableSpec extends BaseSpec with MockFactory {
28+
class DistinctObservableSpec extends BaseSpec with MockitoSugar {
2829

2930
"DistinctObservable" should "have the same methods as the wrapped DistinctObservable" in {
3031
val mongoPublisher: Set[String] = classOf[Publisher[Document]].getMethods.map(_.getName).toSet
@@ -46,14 +47,15 @@ class DistinctObservableSpec extends BaseSpec with MockFactory {
4647
val collation = Collation.builder().locale("en").build()
4748
val batchSize = 10
4849

49-
wrapper.expects(Symbol("filter"))(filter).once()
50-
wrapper.expects(Symbol("maxTime"))(duration.toMillis, TimeUnit.MILLISECONDS).once()
51-
wrapper.expects(Symbol("collation"))(collation).once()
52-
wrapper.expects(Symbol("batchSize"))(batchSize).once()
53-
5450
observable.filter(filter)
5551
observable.maxTime(duration)
5652
observable.collation(collation)
5753
observable.batchSize(batchSize)
54+
55+
verify(wrapper).filter(filter)
56+
verify(wrapper).maxTime(duration.toMillis, TimeUnit.MILLISECONDS)
57+
verify(wrapper).collation(collation)
58+
verify(wrapper).batchSize(batchSize)
59+
verifyNoMoreInteractions(wrapper)
5860
}
5961
}

driver-scala/src/test/scala/org/mongodb/scala/FindObservableSpec.scala

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ package org.mongodb.scala
1919
import java.util.concurrent.TimeUnit
2020
import com.mongodb.{ CursorType, ExplainVerbosity }
2121
import com.mongodb.reactivestreams.client.FindPublisher
22+
import org.mockito.Mockito.{ verify, verifyNoMoreInteractions }
2223
import org.mongodb.scala.model.Collation
2324
import org.reactivestreams.Publisher
24-
import org.scalamock.scalatest.proxy.MockFactory
25+
import org.scalatestplus.mockito.MockitoSugar
2526

2627
import scala.concurrent.duration.Duration
27-
import scala.reflect.ClassTag
2828

29-
class FindObservableSpec extends BaseSpec with MockFactory {
29+
class FindObservableSpec extends BaseSpec with MockitoSugar {
3030

3131
"FindObservable" should "have the same methods as the wrapped FindPublisher" in {
3232
val mongoPublisher: Set[String] = classOf[Publisher[Document]].getMethods.map(_.getName).toSet
@@ -55,27 +55,8 @@ class FindObservableSpec extends BaseSpec with MockFactory {
5555
val ct = classOf[Document]
5656
val verbosity = ExplainVerbosity.QUERY_PLANNER
5757

58-
wrapper.expects(Symbol("first"))().once()
5958
observable.first()
60-
61-
wrapper.expects(Symbol("collation"))(collation).once()
62-
wrapper.expects(Symbol("cursorType"))(CursorType.NonTailable).once()
63-
wrapper.expects(Symbol("filter"))(filter).once()
64-
wrapper.expects(Symbol("limit"))(1).once()
65-
wrapper.expects(Symbol("hint"))(hint).once()
66-
wrapper.expects(Symbol("hintString"))(hintString).once()
67-
wrapper.expects(Symbol("maxAwaitTime"))(maxDuration.toMillis, TimeUnit.MILLISECONDS).once()
68-
wrapper.expects(Symbol("maxTime"))(duration.toMillis, TimeUnit.MILLISECONDS).once()
69-
wrapper.expects(Symbol("noCursorTimeout"))(true).once()
70-
wrapper.expects(Symbol("oplogReplay"))(true).once()
71-
wrapper.expects(Symbol("partial"))(true).once()
72-
wrapper.expects(Symbol("projection"))(projection).once()
73-
wrapper.expects(Symbol("skip"))(1).once()
74-
wrapper.expects(Symbol("sort"))(sort).once()
75-
wrapper.expects(Symbol("batchSize"))(batchSize).once()
76-
wrapper.expects(Symbol("allowDiskUse"))(true).once()
77-
wrapper.expects(Symbol("explain"))(ct).once()
78-
wrapper.expects(Symbol("explain"))(ct, verbosity).once()
59+
verify(wrapper).first()
7960

8061
observable.collation(collation)
8162
observable.cursorType(CursorType.NonTailable)
@@ -95,5 +76,25 @@ class FindObservableSpec extends BaseSpec with MockFactory {
9576
observable.allowDiskUse(true)
9677
observable.explain[Document]()
9778
observable.explain[Document](verbosity)
79+
80+
verify(wrapper).collation(collation)
81+
verify(wrapper).cursorType(CursorType.NonTailable)
82+
verify(wrapper).filter(filter)
83+
verify(wrapper).limit(1)
84+
verify(wrapper).hint(hint)
85+
verify(wrapper).hintString(hintString)
86+
verify(wrapper).maxAwaitTime(maxDuration.toMillis, TimeUnit.MILLISECONDS)
87+
verify(wrapper).maxTime(duration.toMillis, TimeUnit.MILLISECONDS)
88+
verify(wrapper).noCursorTimeout(true)
89+
verify(wrapper).oplogReplay(true)
90+
verify(wrapper).partial(true)
91+
verify(wrapper).projection(projection)
92+
verify(wrapper).skip(1)
93+
verify(wrapper).sort(sort)
94+
verify(wrapper).batchSize(batchSize)
95+
verify(wrapper).allowDiskUse(true)
96+
verify(wrapper).explain(ct)
97+
verify(wrapper).explain(ct, verbosity)
98+
verifyNoMoreInteractions(wrapper)
9899
}
99100
}

driver-scala/src/test/scala/org/mongodb/scala/ListCollectionsObservableSpec.scala

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ package org.mongodb.scala
1919
import java.util.concurrent.TimeUnit
2020

2121
import com.mongodb.reactivestreams.client.ListCollectionsPublisher
22+
import org.mockito.Mockito.{ verify, verifyNoMoreInteractions }
2223
import org.reactivestreams.Publisher
23-
import org.scalamock.scalatest.proxy.MockFactory
24+
import org.scalatestplus.mockito.MockitoSugar
2425

2526
import scala.concurrent.duration.Duration
2627

27-
class ListCollectionsObservableSpec extends BaseSpec with MockFactory {
28+
class ListCollectionsObservableSpec extends BaseSpec with MockitoSugar {
2829

2930
"ListCollectionsObservable" should "have the same methods as the wrapped ListCollectionsObservable" in {
3031
val mongoPublisher: Set[String] = classOf[Publisher[Document]].getMethods.map(_.getName).toSet
@@ -45,12 +46,13 @@ class ListCollectionsObservableSpec extends BaseSpec with MockFactory {
4546
val duration = Duration(1, TimeUnit.SECONDS)
4647
val batchSize = 10
4748

48-
wrapper.expects(Symbol("filter"))(filter).once()
49-
wrapper.expects(Symbol("maxTime"))(duration.toMillis, TimeUnit.MILLISECONDS).once()
50-
wrapper.expects(Symbol("batchSize"))(batchSize).once()
51-
5249
observable.filter(filter)
5350
observable.maxTime(duration)
5451
observable.batchSize(batchSize)
52+
53+
verify(wrapper).filter(filter)
54+
verify(wrapper).maxTime(duration.toMillis, TimeUnit.MILLISECONDS)
55+
verify(wrapper).batchSize(batchSize)
56+
verifyNoMoreInteractions(wrapper)
5557
}
5658
}

driver-scala/src/test/scala/org/mongodb/scala/ListDatabasesObservableSpec.scala

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ package org.mongodb.scala
1818
import java.util.concurrent.TimeUnit
1919

2020
import com.mongodb.reactivestreams.client.ListDatabasesPublisher
21+
import org.mockito.Mockito.{ verify, verifyNoMoreInteractions }
2122
import org.reactivestreams.Publisher
22-
import org.scalamock.scalatest.proxy.MockFactory
23+
import org.scalatestplus.mockito.MockitoSugar
2324

2425
import scala.concurrent.duration.Duration
2526

26-
class ListDatabasesObservableSpec extends BaseSpec with MockFactory {
27+
class ListDatabasesObservableSpec extends BaseSpec with MockitoSugar {
2728

2829
"ListDatabasesObservable" should "have the same methods as the wrapped ListDatabasesObservable" in {
2930
val mongoPublisher: Set[String] = classOf[Publisher[Document]].getMethods.map(_.getName).toSet
@@ -43,14 +44,16 @@ class ListDatabasesObservableSpec extends BaseSpec with MockFactory {
4344
val duration = Duration(1, TimeUnit.SECONDS)
4445
val batchSize = 10
4546

46-
wrapper.expects(Symbol("maxTime"))(duration.toMillis, TimeUnit.MILLISECONDS).once()
47-
wrapper.expects(Symbol("filter"))(filter).once()
48-
wrapper.expects(Symbol("nameOnly"))(true).once()
49-
wrapper.expects(Symbol("batchSize"))(batchSize).once()
50-
5147
observable.maxTime(duration)
5248
observable.filter(filter)
5349
observable.nameOnly(true)
5450
observable.batchSize(batchSize)
51+
52+
verify(wrapper).maxTime(duration.toMillis, TimeUnit.MILLISECONDS)
53+
verify(wrapper).filter(filter)
54+
verify(wrapper).nameOnly(true)
55+
verify(wrapper).batchSize(batchSize)
56+
57+
verifyNoMoreInteractions(wrapper)
5558
}
5659
}

driver-scala/src/test/scala/org/mongodb/scala/ListIndexesObservableSpec.scala

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,13 @@ package org.mongodb.scala
1818
import java.util.concurrent.TimeUnit
1919

2020
import com.mongodb.reactivestreams.client.ListIndexesPublisher
21+
import org.mockito.Mockito.{ verify, verifyNoMoreInteractions }
2122
import org.reactivestreams.Publisher
22-
import org.scalamock.scalatest.proxy.MockFactory
23+
import org.scalatestplus.mockito.MockitoSugar
2324

2425
import scala.concurrent.duration.Duration
2526

26-
class ListIndexesObservableSpec extends BaseSpec with MockFactory {
27+
class ListIndexesObservableSpec extends BaseSpec with MockitoSugar {
2728

2829
"ListIndexesObservable" should "have the same methods as the wrapped ListIndexesObservable" in {
2930
val mongoPublisher: Set[String] = classOf[Publisher[Document]].getMethods.map(_.getName).toSet
@@ -42,10 +43,11 @@ class ListIndexesObservableSpec extends BaseSpec with MockFactory {
4243
val duration = Duration(1, TimeUnit.SECONDS)
4344
val batchSize = 10
4445

45-
wrapper.expects(Symbol("maxTime"))(duration.toMillis, TimeUnit.MILLISECONDS).once()
46-
wrapper.expects(Symbol("batchSize"))(batchSize).once()
47-
4846
observable.maxTime(duration)
4947
observable.batchSize(batchSize)
48+
49+
verify(wrapper).maxTime(duration.toMillis, TimeUnit.MILLISECONDS)
50+
verify(wrapper).batchSize(batchSize)
51+
verifyNoMoreInteractions(wrapper)
5052
}
5153
}

0 commit comments

Comments
 (0)