Skip to content

Commit 4b158d0

Browse files
committed
Update BaseSpec and FutureSpec traits
JAVA-4181
1 parent 7a0b575 commit 4b158d0

File tree

2 files changed

+11
-36
lines changed

2 files changed

+11
-36
lines changed

driver-scala/src/it/scala/org/mongodb/scala/BaseSpec.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@
1616
package org.mongodb.scala
1717

1818
import org.junit.runner.RunWith
19-
import org.scalatest.{ FlatSpec, Matchers }
19+
import org.scalatest.flatspec.AnyFlatSpec
20+
import org.scalatest.matchers.should.Matchers
2021
import org.scalatestplus.junit.JUnitRunner
2122

2223
@RunWith(classOf[JUnitRunner])
23-
abstract class BaseSpec extends FlatSpec with Matchers {}
24+
abstract class BaseSpec extends AnyFlatSpec with Matchers {}

driver-scala/src/it/scala/org/mongodb/scala/FuturesSpec.scala

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,47 +21,21 @@ import org.scalatest.time.{ Millis, Seconds, Span }
2121

2222
import scala.concurrent.Future
2323
import scala.language.implicitConversions
24-
import scala.util.{ Failure, Success }
2524

2625
trait FuturesSpec extends ScalaFutures {
2726

2827
implicit val defaultPatience: PatienceConfig = PatienceConfig(timeout = Span(60, Seconds), interval = Span(5, Millis))
2928

30-
implicit def observableToFuture[TResult](observable: Observable[TResult]): Future[Seq[TResult]] =
31-
observable.toFuture()
32-
33-
implicit def observableToFutureConcept[T](observable: Observable[T]): FutureConcept[Seq[T]] = {
34-
val future: Future[Seq[T]] = observable
35-
new FutureConcept[Seq[T]] {
36-
def eitherValue: Option[Either[Throwable, Seq[T]]] = {
37-
future.value.map {
38-
case Success(o) => Right(o)
39-
case Failure(e) => Left(e)
40-
}
41-
}
42-
def isExpired: Boolean = false
29+
implicit def observableToFuture[T](observable: Observable[T]): Future[Seq[T]] =
30+
observable.collect().toFuture()
4331

44-
// Scala Futures themselves don't support the notion of a timeout
45-
def isCanceled: Boolean = false // Scala Futures don't seem to be cancelable either
46-
}
47-
}
48-
49-
implicit def observableToFuture[TResult](observable: SingleObservable[TResult]): Future[TResult] =
32+
implicit def singleObservableToFuture[T](observable: SingleObservable[T]): Future[T] =
5033
observable.toFuture()
51-
implicit def observableToFutureConcept[T](observable: SingleObservable[T]): FutureConcept[T] = {
52-
val future: Future[T] = observable.toFuture()
53-
new FutureConcept[T] {
54-
def eitherValue: Option[Either[Throwable, T]] = {
55-
future.value.map {
56-
case Success(o) => Right(o)
57-
case Failure(e) => Left(e)
58-
}
59-
}
60-
def isExpired: Boolean = false
6134

62-
// Scala Futures themselves don't support the notion of a timeout
63-
def isCanceled: Boolean = false // Scala Futures don't seem to be cancelable either
64-
}
65-
}
35+
implicit def observableToFutureConcept[T](observable: Observable[T]): FutureConcept[Seq[T]] =
36+
convertScalaFuture(observable.collect().toFuture())
37+
38+
implicit def singleObservableToFutureConcept[T](observable: SingleObservable[T]): FutureConcept[T] =
39+
convertScalaFuture(observable.toFuture())
6640

6741
}

0 commit comments

Comments
 (0)