|
Play Framework/Scala example source code file (PlayRunHookSpec.scala)
The PlayRunHookSpec.scala Play Framework example source code/* * Copyright (C) 2009-2013 Typesafe Inc. <http://www.typesafe.com> */ package play import org.specs2.mutable._ import scala.collection.mutable.HashMap object PlayRunHookSpec extends Specification { "PlayRunHook runner" should { "provide implicit `run` which passes every hook to a provided function" in { val hooks = Seq.fill(3)(new PlayRunHook {}) val executedHooks: HashMap[PlayRunHook, Boolean] = HashMap.empty hooks.run(hook => executedHooks += ((hook, true))) executedHooks.size must be equalTo(3) } "re-throw an exception on single hook failure" in { val executedHooks: HashMap[PlayRunHook, Boolean] = HashMap.empty class HookMockException extends Throwable val hooks = Seq.fill(3)(new PlayRunHook { executedHooks += ((this, true)) }) :+ new PlayRunHook { override def beforeStarted(): Unit = throw new HookMockException() } hooks.run(_.beforeStarted()) must throwA[HookMockException] executedHooks.size must be equalTo(3) } "combine several thrown exceptions into a RunHookCompositeThrowable" in { val executedHooks: HashMap[PlayRunHook, Boolean] = HashMap.empty class HookFirstMockException extends Throwable class HookSecondMockException extends Throwable def createDummyHooks = new PlayRunHook { executedHooks += ((this, true)) } val dummyHooks = Seq.fill(3)(createDummyHooks) val firstFailure = new PlayRunHook { override def beforeStarted(): Unit = throw new HookFirstMockException() } val lastFailure = new PlayRunHook { override def beforeStarted(): Unit = throw new HookSecondMockException() } val hooks = firstFailure +: dummyHooks :+ lastFailure hooks.run(_.beforeStarted()) must throwAn[RunHookCompositeThrowable].like { case e: Throwable => e.getMessage must contain("HookFirstMockException") e.getMessage must contain("HookSecondMockException") e.getMessage must not contain("HookThirdMockException") } executedHooks.size must be equalTo(3) } } } Other Play Framework source code examplesHere is a short list of links related to this Play Framework PlayRunHookSpec.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 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.