com.google.common.util.concurrent.MoreExecutors Scala Examples
The following examples show how to use com.google.common.util.concurrent.MoreExecutors.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: AsyncGuavaTests.scala From freestyle with Apache License 2.0 | 5 votes |
package freestyle.async package guava import java.util.concurrent.{Callable, Executors} import com.google.common.util.concurrent.{ListenableFuture, ListeningExecutorService, MoreExecutors} import org.scalatest._ import scala.concurrent.duration.Duration import scala.concurrent.{Await, ExecutionContext} class AsyncGuavaTests extends WordSpec with Matchers with Implicits { import ExecutionContext.Implicits.global import implicits._ val exception: Throwable = new RuntimeException("Test exception") val service: ListeningExecutorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10)) def failedFuture[T]: ListenableFuture[T] = service.submit(new Callable[T] { override def call(): T = throw exception }) def successfulFuture[T](value: T): ListenableFuture[T] = service.submit(new Callable[T] { override def call(): T = value }) val foo = "Bar" "Guava ListenableFuture Freestyle integration" should { "transform guava ListenableFutures into scala.concurrent.Future successfully" in { Await.result(listenableFuture2Async(successfulFuture(foo)), Duration.Inf) shouldBe foo } "recover from failed guava ListenableFutures wrapping them into scala.concurrent.Future" in { Await.result(listenableFuture2Async(failedFuture[String]).failed, Duration.Inf) shouldBe exception } "transform guava ListenableFuture[Void] into scala.concurrent.Future successfully through an implicit conversion" in { Await.result( listenableFuture2Async(listenableVoidToListenableUnit(successfulFuture[Void](None.orNull))), Duration.Inf) shouldBe ((): Unit) } "recover from failed guava ListenableFuture[Void] wrapping them into scala.concurrent.Future through an implicit conversion" in { Await.result( listenableFuture2Async(listenableVoidToListenableUnit(failedFuture[Void])).failed, Duration.Inf) shouldBe exception } } }