Skip to content

Commit 006c211

Browse files
committed
Broke down WebServerStatement#evaluate down into private functions.
1 parent e489003 commit 006c211

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

  • architecture/instrumentation-test/src/main/java/com/mitteloupe/whoami/test/rule

architecture/instrumentation-test/src/main/java/com/mitteloupe/whoami/test/rule/WebServerRule.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mitteloupe.whoami.test.rule
22

33
import com.mitteloupe.whoami.test.annotation.ServerRequestResponse
4+
import com.mitteloupe.whoami.test.server.MockRequest
45
import com.mitteloupe.whoami.test.server.ResponseBinder
56
import com.mitteloupe.whoami.test.server.ResponseStore
67
import org.junit.rules.TestRule
@@ -25,32 +26,38 @@ private class WebServerStatement(
2526
val mockDispatcher by lazy { lazyMockDispatcher.value }
2627

2728
override fun evaluate() {
29+
mockDispatcher.testName = description.displayName
30+
val stubbedResponseKeys = bindRequestResponseFactories()
31+
base.evaluate()
32+
assertAllStubsUsed(stubbedResponseKeys)
33+
mockDispatcher.reset()
34+
}
35+
36+
private fun bindRequestResponseFactories(): Set<MockRequest> {
2837
val requestResponses = description.requestResponseIds()
2938
.map { requestResponseId ->
3039
requireNotNull(
3140
responseStore.responseFactories[requestResponseId]
3241
) { "Request/Response ID $requestResponseId not found." }
3342
}
3443

35-
mockDispatcher.testName = description.displayName
3644
requestResponses.forEach { requestResponse ->
3745
mockDispatcher.bindResponse(requestResponse)
3846
}
3947
val stubbedResponseKeys = requestResponses
4048
.map { requestResponse -> requestResponse.request }
4149
.toSet()
50+
return stubbedResponseKeys
51+
}
4252

43-
base.evaluate()
44-
53+
private fun assertAllStubsUsed(stubbedResponseKeys: Set<MockRequest>) {
4554
val usedResponseKeys = mockDispatcher.usedEndpoints.toSet()
4655

4756
val unusedResponseKeys = stubbedResponseKeys - usedResponseKeys
4857
check(unusedResponseKeys.isEmpty()) {
4958
"${unusedResponseKeys.size} unused stubbed URLs:\n[" +
5059
unusedResponseKeys.joinToString("]\n[") + "]"
5160
}
52-
53-
mockDispatcher.reset()
5461
}
5562

5663
private fun Description.requestResponseIds() =

0 commit comments

Comments
 (0)