verify(mockClient, evalVerificationMode(expectation.times)).exchangeResource(
eq(request.method),
eq(request.path),
- argThat { assertJsonEquals(request.body, this) },
+ any(),
argThat(RequiredMapEntriesMatcher(request.headers))
)
}
restClient.exchangeResource(
eq(expectation.request.method),
eq(expectation.request.path),
- any(),
+ argThat(JsonMatcher(expectation.request.body.toString())),
any()
)
)
override fun getInstance(selector: String, service: BlueprintWebClientService): BlueprintWebClientService {
var spiedService = spies[selector]
- if (spiedService != null)
+ if (spiedService != null) {
+ // inject the service here as realService: needed for "stateful services" (e.g. holding a session token)
+ spiedService.realService = service
return spiedService
+ }
spiedService = SpyService(mapper, selector, service)
spies[selector] = spiedService
open class SpyService(
private val mapper: ObjectMapper,
val selector: String,
- private val realService: BlueprintWebClientService
+ var realService: BlueprintWebClientService
) :
BlueprintWebClientService by realService {