Add mock report when deleting mock
This commit is contained in:
parent
d476478192
commit
0b4f4e0cf8
11 changed files with 224 additions and 26 deletions
|
@ -31,17 +31,32 @@ class ControlServerClient {
|
|||
}
|
||||
}
|
||||
|
||||
int removeMock(String name) {
|
||||
List<MockEvent> removeMock(String name) {
|
||||
HttpPost removeMockPost = new HttpPost(address)
|
||||
removeMockPost.entity = buildRemoveMockRequest(new RemoveMockRequestData(name: name))
|
||||
CloseableHttpResponse response = client.execute(removeMockPost)
|
||||
GPathResult responseXml = Util.extractXmlResponse(response)
|
||||
if (responseXml.name() == 'mockRemoved') {
|
||||
return responseXml.text() as int
|
||||
return responseXml.'mockEvent'.collect {
|
||||
new MockEvent(mockRequestFromXml(it.request), mockResponseFromXml(it.response))
|
||||
}
|
||||
}
|
||||
throw new MockDoesNotExist()
|
||||
}
|
||||
|
||||
private static MockResponse mockResponseFromXml(GPathResult xml) {
|
||||
return new MockResponse(xml.statusCode.text() as int, xml.text.text(), xml.headers.param.collectEntries { [(it.@name.text()):it.text()] })
|
||||
}
|
||||
|
||||
private static MockRequest mockRequestFromXml(GPathResult xml) {
|
||||
return new MockRequest(
|
||||
xml.text.text(),
|
||||
xml.headers.param.collectEntries { [(it.@name.text()):it.text()] },
|
||||
xml.query.param.collectEntries { [(it.@name.text()):it.text()] },
|
||||
xml.path.elem*.text()
|
||||
)
|
||||
}
|
||||
|
||||
private static StringEntity buildRemoveMockRequest(RemoveMockRequestData data) {
|
||||
return new StringEntity("""\
|
||||
<removeMock>
|
||||
|
@ -70,8 +85,8 @@ class ControlServerClient {
|
|||
HttpGet get = new HttpGet(address)
|
||||
CloseableHttpResponse response = client.execute(get)
|
||||
GPathResult xml = Util.extractXmlResponse(response)
|
||||
if(xml.name() == 'mocks'){
|
||||
return xml.mock.collect {new RegisteredMock(it.name.text(), it.path.text(), it.port.text() as int)}
|
||||
if (xml.name() == 'mocks') {
|
||||
return xml.mock.collect { new RegisteredMock(it.name.text(), it.path.text(), it.port.text() as int) }
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
|
18
src/test/groovy/pl/touk/mockserver/client/MockEvent.groovy
Normal file
18
src/test/groovy/pl/touk/mockserver/client/MockEvent.groovy
Normal file
|
@ -0,0 +1,18 @@
|
|||
package pl.touk.mockserver.client
|
||||
|
||||
import groovy.transform.CompileStatic
|
||||
import groovy.transform.EqualsAndHashCode
|
||||
import groovy.transform.TypeChecked
|
||||
|
||||
@EqualsAndHashCode
|
||||
@CompileStatic
|
||||
@TypeChecked
|
||||
class MockEvent {
|
||||
final MockRequest request
|
||||
final MockResponse response
|
||||
|
||||
MockEvent(MockRequest request, MockResponse response) {
|
||||
this.request = request
|
||||
this.response = response
|
||||
}
|
||||
}
|
22
src/test/groovy/pl/touk/mockserver/client/MockRequest.groovy
Normal file
22
src/test/groovy/pl/touk/mockserver/client/MockRequest.groovy
Normal file
|
@ -0,0 +1,22 @@
|
|||
package pl.touk.mockserver.client
|
||||
|
||||
import groovy.transform.CompileStatic
|
||||
import groovy.transform.EqualsAndHashCode
|
||||
import groovy.transform.TypeChecked
|
||||
|
||||
@CompileStatic
|
||||
@TypeChecked
|
||||
@EqualsAndHashCode
|
||||
class MockRequest {
|
||||
final String text
|
||||
final Map<String, String> headers
|
||||
final Map<String, String> query
|
||||
final List<String> path
|
||||
|
||||
MockRequest(String text, Map<String, String> headers, Map<String, String> query, List<String> path) {
|
||||
this.text = text
|
||||
this.headers = headers
|
||||
this.query = query
|
||||
this.path = path
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package pl.touk.mockserver.client
|
||||
|
||||
import groovy.transform.CompileStatic
|
||||
import groovy.transform.EqualsAndHashCode
|
||||
import groovy.transform.TypeChecked
|
||||
|
||||
@CompileStatic
|
||||
@TypeChecked
|
||||
@EqualsAndHashCode
|
||||
class MockResponse {
|
||||
final int statusCode
|
||||
final String text
|
||||
final Map<String, String> headers
|
||||
|
||||
MockResponse(int statusCode, String text, Map<String, String> headers) {
|
||||
this.statusCode = statusCode
|
||||
this.text = text
|
||||
this.headers = headers
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue