aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/com/softwaremill/sttp/testing/SttpBackendStub.scala
diff options
context:
space:
mode:
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.scala11
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