Skip to content

Commit 4d0c817

Browse files
Endpoint path matching enhanced with multiple possible matching patterns (#21)
* Endpoint path matching enhanced with multiple possible matching patterns * PatternMatcher replaced with usual regular expression usage
1 parent cb91137 commit 4d0c817

File tree

3 files changed

+4
-7
lines changed

3 files changed

+4
-7
lines changed

mock/src/main/java/com/telefonica/mock/MockHelper.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.telefonica.mock
33
import android.content.Context
44
import com.telefonica.mock.di.DaggerMockComponent
55
import com.telefonica.mock.di.MockApiModule
6-
import java.net.InetAddress
76
import javax.inject.Inject
87

98
class MockHelper(context: Context) {
@@ -42,7 +41,7 @@ class MockHelper(context: Context) {
4241
class EnqueuingContext(val mockHelper: MockHelper) {
4342
fun whenever(
4443
path: Path,
45-
method: Method = Method.Get,
44+
method: Method = Method.Get
4645
): MockResponseBuilderWithRequestInfo = MockResponseBuilderWithRequestInfo(mockHelper, RequestInfo(path, method))
4746
}
4847

mock/src/main/java/com/telefonica/mock/MockedServer.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import okhttp3.mockwebserver.Dispatcher
66
import okhttp3.mockwebserver.MockResponse
77
import okhttp3.mockwebserver.MockWebServer
88
import okhttp3.mockwebserver.RecordedRequest
9-
import java.net.InetAddress
109
import okhttp3.tls.HandshakeCertificates
1110
import okhttp3.tls.HeldCertificate
1211
import javax.inject.Inject

mock/src/main/java/com/telefonica/mock/ResponseDispatcher.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.telefonica.mock
22

3-
import android.os.PatternMatcher
43
import okhttp3.mockwebserver.MockResponse
54
import okhttp3.mockwebserver.SocketPolicy
65
import java.util.*
@@ -15,7 +14,9 @@ class ResponseDispatcher @Inject constructor() {
1514

1615
fun dispatch(recordedMethod: String?, recordedPath: String?): MockResponse {
1716
val responseList = responses
18-
.filterKeys { requestInfo -> requestInfo.method.value == recordedMethod && requestInfo.path.toPattern().match(recordedPath) }
17+
.filterKeys { requestInfo ->
18+
requestInfo.method.value == recordedMethod && !recordedPath.isNullOrEmpty() && Regex(requestInfo.path).matches(recordedPath)
19+
}
1920
.entries
2021
.firstOrNull()
2122
?.value
@@ -44,6 +45,4 @@ class ResponseDispatcher @Inject constructor() {
4445
val mockListUpdated = (responses[requestInfo] ?: LinkedList()).apply { add(mockedResponse) }
4546
responses[requestInfo] = mockListUpdated
4647
}
47-
48-
private fun Path.toPattern(): PatternMatcher = PatternMatcher(this, PatternMatcher.PATTERN_SIMPLE_GLOB)
4948
}

0 commit comments

Comments
 (0)