|
Akka/Scala example source code file (package.scala)
The package.scala Akka example source code/** * Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com> */ package akka import language.implicitConversions import akka.actor.ActorSystem import scala.concurrent.duration.{ Duration, FiniteDuration } import scala.reflect.ClassTag import scala.collection.immutable import java.util.concurrent.TimeUnit.MILLISECONDS package object testkit { def filterEvents[T](eventFilters: Iterable[EventFilter])(block: ⇒ T)(implicit system: ActorSystem): T = { def now = System.currentTimeMillis system.eventStream.publish(TestEvent.Mute(eventFilters.to[immutable.Seq])) try { val result = block val testKitSettings = TestKitExtension(system) val stop = now + testKitSettings.TestEventFilterLeeway.toMillis val failed = eventFilters filterNot (_.awaitDone(Duration(stop - now, MILLISECONDS))) map ("Timeout (" + testKitSettings.TestEventFilterLeeway + ") waiting for " + _) if (failed.nonEmpty) throw new AssertionError("Filter completion error:\n" + failed.mkString("\n")) result } finally { system.eventStream.publish(TestEvent.UnMute(eventFilters.to[immutable.Seq])) } } def filterEvents[T](eventFilters: EventFilter*)(block: ⇒ T)(implicit system: ActorSystem): T = filterEvents(eventFilters.toSeq)(block) def filterException[T <: Throwable](block: ⇒ Unit)(implicit system: ActorSystem, t: ClassTag[T]): Unit = EventFilter[T]() intercept (block) /** * Scala API. Scale timeouts (durations) during tests with the configured * 'akka.test.timefactor'. * Implicit class providing `dilated` method. * {{{ * import scala.concurrent.duration._ * import akka.testkit._ * 10.milliseconds.dilated * }}} * Corresponding Java API is available in JavaTestKit.dilated() */ implicit class TestDuration(val duration: FiniteDuration) extends AnyVal { def dilated(implicit system: ActorSystem): FiniteDuration = (duration * TestKitExtension(system).TestTimeFactor).asInstanceOf[FiniteDuration] } } Other Akka source code examplesHere is a short list of links related to this Akka package.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.