diff options
Diffstat (limited to 'core/src/main/scala/com/softwaremill/sttp/testing/SttpBackendStub.scala')
-rw-r--r-- | core/src/main/scala/com/softwaremill/sttp/testing/SttpBackendStub.scala | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/core/src/main/scala/com/softwaremill/sttp/testing/SttpBackendStub.scala b/core/src/main/scala/com/softwaremill/sttp/testing/SttpBackendStub.scala index 9e52505..a603894 100644 --- a/core/src/main/scala/com/softwaremill/sttp/testing/SttpBackendStub.scala +++ b/core/src/main/scala/com/softwaremill/sttp/testing/SttpBackendStub.scala @@ -103,11 +103,16 @@ class SttpBackendStub[R[_], S] private ( def thenRespondWithCode(code: Int, msg: String = ""): SttpBackendStub[R, S] = { val body = if (code >= 200 && code < 300) Right(msg) else Left(msg) - thenRespondWithMonad(rm.unit(Response(body, code, msg, Nil, Nil))) + thenRespond(Response(body, code, msg, Nil, Nil)) } def thenRespond[T](body: T): SttpBackendStub[R, S] = - thenRespondWithMonad( - rm.unit(Response[T](Right(body), 200, "OK", Nil, Nil))) + thenRespond(Response[T](Right(body), 200, "OK", Nil, Nil)) + def thenRespond[T](resp: => Response[T]): SttpBackendStub[R, S] = { + val m: PartialFunction[Request[_, _], R[Response[_]]] = { + case r if p(r) => rm.unit(resp) + } + new SttpBackendStub(rm, matchers.orElse(m), fallback) + } def thenRespondWithMonad(resp: => R[Response[_]]): SttpBackendStub[R, S] = { val m: PartialFunction[Request[_, _], R[Response[_]]] = { case r if p(r) => resp |