Created
December 29, 2011 15:11
-
-
Save casualjim/1534496 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package mojolly.testing | |
import org.specs2.specification._ | |
import akka.actor._ | |
import akka.testkit.TestKit | |
trait AkkaContext extends After { | |
val testkit = new TestKit(ActorSystem(newUuid().toString)) | |
implicit def system = testkit.system | |
def after = { | |
testkit.system.shutdown() | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package mojolly.testing | |
import org.specs2.main.{ ArgumentsShortcuts, ArgumentsArgs } | |
import org.specs2.matcher.{ MatchResult, StandardMatchResults, ShouldThrownMatchers, MustThrownMatchers } | |
import org.specs2.execute.{ Result, PendingUntilFixed, StandardResults } | |
import org.specs2.specification._ | |
trait MojollySpecification extends BaseSpecification | |
with ArgumentsArgs | |
with ArgumentsShortcuts | |
with MustThrownMatchers | |
with ShouldThrownMatchers | |
with FormattingFragments | |
with StandardResults | |
with StandardMatchResults | |
with PendingUntilFixed | |
with Contexts { | |
/** transform a context to a result to allow the implicit passing of a context to each example */ | |
implicit def contextToResult[T](t: MatchResult[T])(implicit context: Context = defaultContext): Result = context(asResult(t)) | |
/** use an available outside context to transform a function returning a MatchResult into a result */ | |
implicit def outsideFunctionToResult[T, S](implicit o: Outside[T]) = (f: T ⇒ MatchResult[S]) ⇒ { o((t1: T) ⇒ f(t1).toResult) } | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.scala_tools.time | |
import akka.util.{ FiniteDuration, Duration ⇒ AkkaDuration } | |
import java.util.concurrent.TimeUnit | |
import org.joda.time.{Period, Duration} | |
trait AkkaImplicits { | |
implicit def dur2akkadur(duration: Duration): AkkaDuration = { | |
val max = Long.MaxValue | |
val min = Long.MinValue | |
val zero = 0 | |
duration.getMillis match { | |
case `max` ⇒ AkkaDuration.Inf | |
case `min` ⇒ AkkaDuration.MinusInf | |
case `zero` ⇒ new FiniteDuration(0, TimeUnit.NANOSECONDS) | |
case v ⇒ new FiniteDuration(v, TimeUnit.MILLISECONDS) | |
} | |
} | |
implicit def per2akkadur(period: Period): AkkaDuration = { | |
val max = Int.MaxValue | |
val min = Int.MinValue | |
val zero = 0 | |
period.getMillis match { | |
case `max` ⇒ AkkaDuration.Inf | |
case `min` ⇒ AkkaDuration.MinusInf | |
case `zero` ⇒ new FiniteDuration(0, TimeUnit.NANOSECONDS) | |
case v ⇒ new FiniteDuration(v, TimeUnit.MILLISECONDS) | |
} | |
} | |
implicit def forceAkkaDuration(builder: DurationBuilder): AkkaDuration = { | |
val max = Int.MaxValue | |
val min = Int.MinValue | |
val zero = 0 | |
builder.underlying.getMillis match { | |
case `max` ⇒ AkkaDuration.Inf | |
case `min` ⇒ AkkaDuration.MinusInf | |
case `zero` ⇒ new FiniteDuration(0, TimeUnit.NANOSECONDS) | |
case v ⇒ new FiniteDuration(v, TimeUnit.MILLISECONDS) | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment