|
Akka/Scala example source code file (Future2Actor.scala)
The Future2Actor.scala Akka example source code/** * Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com> */ package akka.dataflow import language.postfixOps import akka.actor.{ Actor, Props } import scala.concurrent.Future import scala.concurrent.Await import scala.concurrent.duration._ import akka.testkit.{ AkkaSpec, DefaultTimeout } import akka.pattern.{ ask, pipe } import scala.concurrent.ExecutionException class Future2ActorSpec extends AkkaSpec with DefaultTimeout { implicit val ec = system.dispatcher "The Future2Actor bridge" must { "support convenient sending to multiple destinations" in { Future(42) pipeTo testActor pipeTo testActor expectMsgAllOf(1 second, 42, 42) } "support convenient sending to multiple destinations with implicit sender" in { implicit val someActor = system.actorOf(Props(new Actor { def receive = Actor.emptyBehavior })) Future(42) pipeTo testActor pipeTo testActor expectMsgAllOf(1 second, 42, 42) lastSender should be(someActor) } "support convenient sending with explicit sender" in { val someActor = system.actorOf(Props(new Actor { def receive = Actor.emptyBehavior })) Future(42).to(testActor, someActor) expectMsgAllOf(1 second, 42) lastSender should be(someActor) } "support reply via sender" in { val actor = system.actorOf(Props(new Actor { def receive = { case "do" ⇒ Future(31) pipeTo context.sender() case "ex" ⇒ Future(throw new AssertionError) pipeTo context.sender() } })) Await.result(actor ? "do", timeout.duration) should be(31) intercept[ExecutionException] { Await.result(actor ? "ex", timeout.duration) }.getCause.isInstanceOf[AssertionError] should be(true) } } } Other Akka source code examplesHere is a short list of links related to this Akka Future2Actor.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.