A simulated response from the async-http-client.
Mock implementation for the play.api.libs.ws.WSClient.
Mock implementation for the play.api.libs.ws.WSClient. Usage:
val ws = MockWS { case ("GET", "/") => Action { Ok("index") } case ("GET", "/hi") => Action { Ok("world") } }
MockWS.Routes is a partial function. It is also possible to combine routes together:
val index = MockWS.Routes { case ("GET", "/") => Action { Ok("index") } } val hiWorld = MockWS.Routes { case ("GET", "/hi") => Action { Ok("world") } } val ws = MockWS(index orElse hiWorld)
The trait provides a materializer you need in order to use MockWS and its Action { ...
The trait provides a materializer you need in order to use MockWS and its Action { ... } definitions inside your testclasses.
Mix this trait into the tests where you use MockWS.
WARNING: you have to call shutdownHelpers()
after usage to avoid memory leaks.
You can also use the object if you dislike traits and like to instead import the functionality.
Example:
class MySpec extends FreeSpec with Matchers with MockWSHelpers with BeforeAndAfterAll { ... override def afterAll(): Unit = { shutdownHelpers() } }
traces whether a route was called and how many times.
traces whether a route was called and how many times. Usage:
val route1 = Route { case (GET, "/route1") => Action { Ok("") } } val route2 = Route { case (GET, "/route2") => Action { Ok("") } } val ws = MockWS(route1 orElse route2) await(ws.url("/route1").get()) route1.called == true route2.called == false
Tiny helper so that you can import the functionality of MockWSHelper instead of extending your test class with a trait.
Tiny helper so that you can import the functionality of MockWSHelper instead of extending your test class with a trait.
import mockws.MockWSHelpers._
A simulated response from the async-http-client.
The play.api.libs.ws.ahc.AhcWSResponse is intended to wrap this.
Implementation is mostly based upon org.asynchttpclient.netty.NettyResponse.
We're faking at this level as opposed to the play.api.libs.ws.WSResponse level to preserve any behavior specific to the NingWSResponse which is likely to be used in the real (non-fake) WSClient.