@@ -12,54 +12,48 @@ class WebServerRule(
1212 private val lazyResponseStore : Lazy <ResponseStore >
1313) : TestRule {
1414 override fun apply (base : Statement , description : Description ): Statement =
15- WebServerInitializationStatement (
16- lazyMockDispatcher,
17- lazyResponseStore,
18- base,
19- description
20- )
21-
22- private class WebServerInitializationStatement (
23- private val lazyMockDispatcher : Lazy <ResponseBinder >,
24- private val lazyResponseStore : Lazy <ResponseStore >,
25- private val base : Statement ,
26- private val description : Description
27- ) : Statement() {
28- val responseStore by lazy { lazyResponseStore.value }
29- val mockDispatcher by lazy { lazyMockDispatcher.value }
15+ WebServerStatement (lazyMockDispatcher, lazyResponseStore, base, description)
16+ }
3017
31- override fun evaluate () {
32- val requestResponses = description.requestResponseIds()
33- .map { requestResponseId ->
18+ private class WebServerStatement (
19+ private val lazyMockDispatcher : Lazy <ResponseBinder >,
20+ private val lazyResponseStore : Lazy <ResponseStore >,
21+ private val base : Statement ,
22+ private val description : Description
23+ ) : Statement() {
24+ val responseStore by lazy { lazyResponseStore.value }
25+ val mockDispatcher by lazy { lazyMockDispatcher.value }
26+
27+ override fun evaluate () {
28+ val requestResponses = description.requestResponseIds()
29+ .map { requestResponseId ->
30+ requireNotNull(
3431 responseStore.responseFactories[requestResponseId]
35- ? : throw IllegalArgumentException (
36- " Request/Response ID $requestResponseId not found."
37- )
38- }
39-
40- mockDispatcher.testName = description.displayName
41- requestResponses.forEach { requestResponse ->
42- mockDispatcher.bindResponse(requestResponse)
32+ ) { " Request/Response ID $requestResponseId not found." }
4333 }
44- val stubbedResponseKeys = requestResponses
45- .map { requestResponse -> requestResponse.request }
46- .toSet()
4734
48- base.evaluate()
35+ mockDispatcher.testName = description.displayName
36+ requestResponses.forEach { requestResponse ->
37+ mockDispatcher.bindResponse(requestResponse)
38+ }
39+ val stubbedResponseKeys = requestResponses
40+ .map { requestResponse -> requestResponse.request }
41+ .toSet()
4942
50- val usedResponseKeys = mockDispatcher.usedEndpoints.toSet ()
43+ base.evaluate ()
5144
52- val unusedResponseKeys = stubbedResponseKeys - usedResponseKeys
53- check(unusedResponseKeys.isEmpty()) {
54- " ${unusedResponseKeys.size} unused stubbed URLs:\n [" +
55- unusedResponseKeys.joinToString(" ]\n [" ) + " ]"
56- }
45+ val usedResponseKeys = mockDispatcher.usedEndpoints.toSet()
5746
58- mockDispatcher.reset()
47+ val unusedResponseKeys = stubbedResponseKeys - usedResponseKeys
48+ check(unusedResponseKeys.isEmpty()) {
49+ " ${unusedResponseKeys.size} unused stubbed URLs:\n [" +
50+ unusedResponseKeys.joinToString(" ]\n [" ) + " ]"
5951 }
6052
61- private fun Description.requestResponseIds () =
62- annotations.filterIsInstance<ServerRequestResponse >()
63- .flatMap { serverResponse -> serverResponse.requestResponseIds.toList() }
53+ mockDispatcher.reset()
6454 }
55+
56+ private fun Description.requestResponseIds () =
57+ annotations.filterIsInstance<ServerRequestResponse >()
58+ .flatMap { serverResponse -> serverResponse.requestResponseIds.toList() }
6559}
0 commit comments