Add mock report when deleting mock
This commit is contained in:
parent
d476478192
commit
0b4f4e0cf8
11 changed files with 224 additions and 26 deletions
|
@ -49,13 +49,13 @@ class ContextExecutor {
|
|||
Util.createResponse(httpExchange, response.text, response.statusCode)
|
||||
}
|
||||
|
||||
int removeMock(String name) {
|
||||
List<MockEvent> removeMock(String name) {
|
||||
Mock mock = mocks.find { it.name == name }
|
||||
if (mock) {
|
||||
mocks.remove(mock)
|
||||
return mock.counter
|
||||
return mock.history
|
||||
}
|
||||
return 0
|
||||
return []
|
||||
}
|
||||
|
||||
void addMock(Mock mock) {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package pl.touk.mockserver.server
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange
|
||||
import groovy.transform.PackageScope
|
||||
import groovy.util.slurpersupport.GPathResult
|
||||
import groovy.xml.MarkupBuilder
|
||||
|
||||
|
@ -10,7 +9,6 @@ import java.util.concurrent.CopyOnWriteArraySet
|
|||
|
||||
import static pl.touk.mockserver.server.Util.createResponse
|
||||
|
||||
@PackageScope
|
||||
class HttpMockServer {
|
||||
|
||||
private final HttpServerWraper httpServerWraper
|
||||
|
@ -104,11 +102,43 @@ class HttpMockServer {
|
|||
throw new RuntimeException('mock not registered')
|
||||
}
|
||||
println "Removing $name"
|
||||
int used = childServers.inject(0) { int res, HttpServerWraper server -> server.removeMock(name) + res }
|
||||
List<MockEvent> mockEvents = childServers.collect { it.removeMock(name) }.flatten()
|
||||
mockNames.remove(name)
|
||||
StringWriter sw = new StringWriter()
|
||||
MarkupBuilder builder = new MarkupBuilder(sw)
|
||||
builder.mockRemoved used
|
||||
builder.mockRemoved {
|
||||
mockEvents.each { MockEvent m ->
|
||||
builder.mockEvent {
|
||||
builder.request {
|
||||
text m.request.text
|
||||
headers {
|
||||
m.request.headers.each {
|
||||
builder.param(name: it.key, it.value)
|
||||
}
|
||||
}
|
||||
query {
|
||||
m.request.query.each {
|
||||
builder.param(name: it.key, it.value)
|
||||
}
|
||||
}
|
||||
path {
|
||||
m.request.path.each {
|
||||
builder.elem it
|
||||
}
|
||||
}
|
||||
}
|
||||
builder.response {
|
||||
text m.response.text
|
||||
headers {
|
||||
m.response.headers.each {
|
||||
builder.param(name: it.key, it.value)
|
||||
}
|
||||
}
|
||||
statusCode m.response.statusCode
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
createResponse(ex, sw.toString(), 200)
|
||||
}
|
||||
|
||||
|
|
|
@ -42,11 +42,11 @@ class HttpServerWraper {
|
|||
httpServer.stop(0)
|
||||
}
|
||||
|
||||
int removeMock(String name) {
|
||||
return executors.inject(0) { int res, ContextExecutor e -> e.removeMock(name) + res }
|
||||
List<MockEvent> removeMock(String name) {
|
||||
return executors.collect { it.removeMock(name) }.flatten()
|
||||
}
|
||||
|
||||
List<Mock> getMocks(){
|
||||
return executors.collect {it.mocks}.flatten()
|
||||
List<Mock> getMocks() {
|
||||
return executors.collect { it.mocks }.flatten()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@ package pl.touk.mockserver.server
|
|||
import groovy.transform.EqualsAndHashCode
|
||||
import groovy.transform.PackageScope
|
||||
|
||||
import java.util.concurrent.CopyOnWriteArrayList
|
||||
|
||||
@PackageScope
|
||||
@EqualsAndHashCode(excludes = ["counter"])
|
||||
class Mock implements Comparable<Mock> {
|
||||
|
@ -16,6 +18,7 @@ class Mock implements Comparable<Mock> {
|
|||
int statusCode = 200
|
||||
String method = 'POST'
|
||||
int counter = 0
|
||||
final List<MockEvent> history = new CopyOnWriteArrayList<>()
|
||||
|
||||
Mock(String name, String path, int port) {
|
||||
if (!(name)) {
|
||||
|
@ -36,7 +39,9 @@ class Mock implements Comparable<Mock> {
|
|||
String responseText = response(request)
|
||||
String response = soap ? wrapSoap(responseText) : responseText
|
||||
Map<String, String> headers = responseHeaders(request)
|
||||
return new MockResponse(statusCode, response, headers)
|
||||
MockResponse mockResponse = new MockResponse(statusCode, response, headers)
|
||||
history << new MockEvent(request, mockResponse)
|
||||
return mockResponse
|
||||
}
|
||||
|
||||
private static String wrapSoap(String request) {
|
||||
|
|
14
src/main/groovy/pl/touk/mockserver/server/MockEvent.groovy
Normal file
14
src/main/groovy/pl/touk/mockserver/server/MockEvent.groovy
Normal file
|
@ -0,0 +1,14 @@
|
|||
package pl.touk.mockserver.server
|
||||
|
||||
import groovy.transform.PackageScope
|
||||
|
||||
@PackageScope
|
||||
class MockEvent {
|
||||
final MockRequest request
|
||||
final MockResponse response
|
||||
|
||||
MockEvent(MockRequest request, MockResponse response) {
|
||||
this.request = request
|
||||
this.response = response
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue