diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..f76ca67
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,7 @@
+FROM java:8
+
+ADD mockserver/target/mockserver-1.1.1-SNAPSHOT-jar-with-dependencies.jar /mockserver.jar
+
+EXPOSE 9999
+
+CMD java -jar /mockserver.jar
diff --git a/buildImage.sh b/buildImage.sh
new file mode 100755
index 0000000..ada5685
--- /dev/null
+++ b/buildImage.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+mvn clean install
+mvn -f mockserver/pom.xml package assembly:single
+
+docker build -t mockserver .
diff --git a/mockserver-api/pom.xml b/mockserver-api/pom.xml
index a7c59b9..c7cbf27 100644
--- a/mockserver-api/pom.xml
+++ b/mockserver-api/pom.xml
@@ -17,4 +17,31 @@
lombok
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.3
+
+ 1.8
+ 1.8
+
+
+
+ org.codehaus.mojo
+ jaxb2-maven-plugin
+
+
+ xjc
+ process-resources
+
+ xjc
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/AddMock.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/request/AddMock.java
deleted file mode 100644
index 80ad580..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/AddMock.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package pl.touk.mockserver.api.request;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement
-@Data
-@EqualsAndHashCode(callSuper = false)
-public class AddMock extends MockServerRequest {
- @XmlElement(required = true)
- private String name;
-
- @XmlElement(required = true)
- private String path;
-
- @XmlElement(required = true)
- private int port;
-
- private String predicate;
-
- private String response;
-
- private Boolean soap;
-
- private Integer statusCode;
-
- private Method method;
-
- private String responseHeaders;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/Method.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/request/Method.java
deleted file mode 100644
index 9e471a1..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/Method.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package pl.touk.mockserver.api.request;
-
-import javax.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
-public enum Method {
- POST,
- GET,
- DELETE,
- PUT,
- TRACE,
- HEAD,
- OPTIONS,
- PATCH;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/MockServerRequest.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/request/MockServerRequest.java
deleted file mode 100644
index 91c1ba9..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/MockServerRequest.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package pl.touk.mockserver.api.request;
-
-public abstract class MockServerRequest {
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/PeekMock.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/request/PeekMock.java
deleted file mode 100644
index d4f14ca..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/PeekMock.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package pl.touk.mockserver.api.request;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement
-@Data
-@EqualsAndHashCode(callSuper = false)
-public class PeekMock extends MockServerRequest{
- @XmlElement(required = true)
- private String name;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/RemoveMock.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/request/RemoveMock.java
deleted file mode 100644
index 49c8b0b..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/RemoveMock.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package pl.touk.mockserver.api.request;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement
-@Data
-@EqualsAndHashCode(callSuper = false)
-public class RemoveMock extends MockServerRequest {
- @XmlElement(required = true)
- private String name;
-
- private Boolean skipReport;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/package-info.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/request/package-info.java
deleted file mode 100644
index 6ccf1df..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/request/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@XmlAccessorType(XmlAccessType.FIELD) package pl.touk.mockserver.api.request;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
\ No newline at end of file
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/ExceptionOccured.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/ExceptionOccured.java
deleted file mode 100644
index a10382b..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/ExceptionOccured.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlValue;
-
-@XmlRootElement
-@Data
-public class ExceptionOccured {
- @XmlValue
- private String message;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockAdded.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockAdded.java
deleted file mode 100644
index 8dc13a9..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockAdded.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.xml.bind.annotation.XmlRootElement;
-
-@XmlRootElement
-@Data
-@EqualsAndHashCode(callSuper = false)
-public class MockAdded extends MockServerResponse {
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockEventReport.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockEventReport.java
deleted file mode 100644
index faa2497..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockEventReport.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-
-import javax.xml.bind.annotation.XmlElement;
-
-@Data
-public class MockEventReport {
- @XmlElement(required = true)
- private MockRequestReport request;
-
- @XmlElement(required = true)
- private MockResponseReport response;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockListing.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockListing.java
deleted file mode 100644
index 77f5e24..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockListing.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import java.util.List;
-
-@XmlRootElement(name = "mocks")
-@Data
-@EqualsAndHashCode(callSuper = false)
-public class MockListing extends MockServerResponse {
- @XmlElement(name = "mock")
- private List mocks;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockPeeked.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockPeeked.java
deleted file mode 100644
index a23daae..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockPeeked.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import java.util.List;
-
-@XmlRootElement
-@Data
-@EqualsAndHashCode(callSuper = false)
-public class MockPeeked extends MockServerResponse {
- @XmlElement(name = "mockEvent")
- private List mockEvents;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockRemoved.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockRemoved.java
deleted file mode 100644
index 008d318..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockRemoved.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import java.util.List;
-
-@XmlRootElement
-@Data
-@EqualsAndHashCode(callSuper = false)
-public class MockRemoved extends MockServerResponse {
- @XmlElement(name = "mockEvent")
- private List mockEvents;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockReport.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockReport.java
deleted file mode 100644
index aa7bd8f..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockReport.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import pl.touk.mockserver.api.request.Method;
-
-import javax.xml.bind.annotation.XmlElement;
-
-@Data
-public class MockReport {
- @XmlElement(required = true)
- private String name;
-
- @XmlElement(required = true)
- private String path;
-
- @XmlElement(required = true)
- private int port;
-
- @XmlElement(required = true)
- private String predicate;
-
- @XmlElement(required = true)
- private String response;
-
- @XmlElement(required = true)
- private String responseHeaders;
-
- @XmlElement(required = true)
- private boolean soap;
-
- @XmlElement(required = true)
- private Method method;
-
- @XmlElement(required = true)
- private int statusCode;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockRequestReport.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockRequestReport.java
deleted file mode 100644
index aecd48f..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockRequestReport.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import java.util.List;
-
-@Data
-public class MockRequestReport {
- private String text;
-
- @XmlElementWrapper(name = "headers")
- @XmlElement(name = "header")
- private List headers;
-
- @XmlElementWrapper(name = "queryParams")
- @XmlElement(name = "queryParam")
- private List queryParams;
-
- @XmlElementWrapper(name = "path")
- @XmlElement(name = "pathPart")
- private List paths;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockResponseReport.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockResponseReport.java
deleted file mode 100644
index 83d3da5..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockResponseReport.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import java.util.List;
-
-@Data
-public class MockResponseReport {
- @XmlElement(required = true)
- private int statusCode;
-
- private String text;
-
- @XmlElementWrapper(name = "headers")
- @XmlElement(name = "header")
- private List headers;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockServerResponse.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockServerResponse.java
deleted file mode 100644
index bf7e0ae..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/MockServerResponse.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-public abstract class MockServerResponse {
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/Parameter.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/Parameter.java
deleted file mode 100644
index 6a9c0c3..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/Parameter.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package pl.touk.mockserver.api.response;
-
-import lombok.Data;
-
-import javax.xml.bind.annotation.XmlAttribute;
-import javax.xml.bind.annotation.XmlValue;
-
-@Data
-public class Parameter {
- @XmlAttribute(required = true)
- private String name;
-
- @XmlValue
- private String value;
-}
diff --git a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/package-info.java b/mockserver-api/src/main/java/pl/touk/mockserver/api/response/package-info.java
deleted file mode 100644
index d317cb9..0000000
--- a/mockserver-api/src/main/java/pl/touk/mockserver/api/response/package-info.java
+++ /dev/null
@@ -1,4 +0,0 @@
-@XmlAccessorType(XmlAccessType.FIELD) package pl.touk.mockserver.api.response;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
\ No newline at end of file
diff --git a/mockserver-api/src/main/resource/pl/touk/mockserver/api/request/jaxb.index b/mockserver-api/src/main/resource/pl/touk/mockserver/api/request/jaxb.index
deleted file mode 100644
index 233becc..0000000
--- a/mockserver-api/src/main/resource/pl/touk/mockserver/api/request/jaxb.index
+++ /dev/null
@@ -1,4 +0,0 @@
-AddMock
-Method
-PeekMock
-RemoveMock
\ No newline at end of file
diff --git a/mockserver-api/src/main/resource/pl/touk/mockserver/api/response/jaxb.index b/mockserver-api/src/main/resource/pl/touk/mockserver/api/response/jaxb.index
deleted file mode 100644
index 86bdb57..0000000
--- a/mockserver-api/src/main/resource/pl/touk/mockserver/api/response/jaxb.index
+++ /dev/null
@@ -1,11 +0,0 @@
-ExceptionOccured
-MockAdded
-MockEventReport
-MockListing
-MockPeeked
-MockRemoved
-MockReport
-MockRequestReport
-MockResponseReport
-MockServerResponse
-Parameter
\ No newline at end of file
diff --git a/mockserver-api/src/main/xjb/binding.xjb b/mockserver-api/src/main/xjb/binding.xjb
new file mode 100644
index 0000000..a735d24
--- /dev/null
+++ b/mockserver-api/src/main/xjb/binding.xjb
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mockserver-api/src/main/xsd/pl/touk/mockserver/api/common.xsd b/mockserver-api/src/main/xsd/pl/touk/mockserver/api/common.xsd
new file mode 100644
index 0000000..a48f724
--- /dev/null
+++ b/mockserver-api/src/main/xsd/pl/touk/mockserver/api/common.xsd
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mockserver-api/src/main/xsd/pl/touk/mockserver/api/request.xsd b/mockserver-api/src/main/xsd/pl/touk/mockserver/api/request.xsd
new file mode 100644
index 0000000..fb4afca
--- /dev/null
+++ b/mockserver-api/src/main/xsd/pl/touk/mockserver/api/request.xsd
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mockserver-api/src/main/xsd/pl/touk/mockserver/api/response.xsd b/mockserver-api/src/main/xsd/pl/touk/mockserver/api/response.xsd
new file mode 100644
index 0000000..21ffd9b
--- /dev/null
+++ b/mockserver-api/src/main/xsd/pl/touk/mockserver/api/response.xsd
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mockserver-client/src/main/groovy/pl/touk/mockserver/client/RemoteMockServer.groovy b/mockserver-client/src/main/groovy/pl/touk/mockserver/client/RemoteMockServer.groovy
index 14664e0..ffbc9a0 100644
--- a/mockserver-client/src/main/groovy/pl/touk/mockserver/client/RemoteMockServer.groovy
+++ b/mockserver-client/src/main/groovy/pl/touk/mockserver/client/RemoteMockServer.groovy
@@ -18,9 +18,7 @@ import javax.xml.bind.JAXBContext
class RemoteMockServer {
private final String address
private final CloseableHttpClient client = HttpClients.createDefault()
- private static final JAXBContext requestContext = JAXBContext.newInstance(AddMock.package.name, AddMock.classLoader)
- private static
- final JAXBContext responseContext = JAXBContext.newInstance(MockAdded.package.name, MockAdded.classLoader)
+ private static final JAXBContext requestContext = JAXBContext.newInstance(AddMock, PeekMock, RemoveMock)
RemoteMockServer(String host, int port) {
address = "http://$host:$port/serverControl"
@@ -70,7 +68,7 @@ class RemoteMockServer {
List listMocks() {
HttpGet get = new HttpGet(address)
CloseableHttpResponse response = client.execute(get)
- MockListing mockListing = Util.extractResponse(response) as MockListing
- return mockListing.mocks
+ Mocks mocks = Util.extractResponse(response) as Mocks
+ return mocks.mocks
}
}
diff --git a/mockserver-client/src/main/groovy/pl/touk/mockserver/client/Util.groovy b/mockserver-client/src/main/groovy/pl/touk/mockserver/client/Util.groovy
index 446ebf0..966625f 100644
--- a/mockserver-client/src/main/groovy/pl/touk/mockserver/client/Util.groovy
+++ b/mockserver-client/src/main/groovy/pl/touk/mockserver/client/Util.groovy
@@ -35,7 +35,7 @@ class Util {
return responseContext.createUnmarshaller().unmarshal(new StringReader(responseString)) as MockServerResponse
}
ExceptionOccured exceptionOccured = responseContext.createUnmarshaller().unmarshal(new StringReader(responseString)) as ExceptionOccured
- String message = exceptionOccured.message
+ String message = exceptionOccured.value
if (message == 'mock already registered') {
throw new MockAlreadyExists()
}
diff --git a/mockserver-tests/src/test/groovy/pl/touk/mockserver/tests/MockServerIntegrationTest.groovy b/mockserver-tests/src/test/groovy/pl/touk/mockserver/tests/MockServerIntegrationTest.groovy
index 32c9623..018a28d 100644
--- a/mockserver-tests/src/test/groovy/pl/touk/mockserver/tests/MockServerIntegrationTest.groovy
+++ b/mockserver-tests/src/test/groovy/pl/touk/mockserver/tests/MockServerIntegrationTest.groovy
@@ -8,7 +8,7 @@ import org.apache.http.impl.client.CloseableHttpClient
import org.apache.http.impl.client.HttpClients
import org.apache.http.util.EntityUtils
import pl.touk.mockserver.api.request.AddMock
-import pl.touk.mockserver.api.request.Method
+import pl.touk.mockserver.api.common.Method
import pl.touk.mockserver.api.response.MockEventReport
import pl.touk.mockserver.api.response.MockReport
import pl.touk.mockserver.api.response.Parameter
@@ -637,14 +637,21 @@ class MockServerIntegrationTest extends Specification {
port: 9999
))
remoteMockServer.removeMock('testRest5')
- expect:
- remoteMockServer.listMocks() == [
- new MockReport(name: 'testRest', path: 'testEndpoint', port: 9999, predicate: '{ _ -> true }', response: '''{ _ -> '' }''', responseHeaders: '{ _ -> [:] }', soap: false, statusCode: 200, method: Method.POST),
- new MockReport(name: 'testRest2', path: 'testEndpoint', port: 9998, predicate: '''{ req -> req.xml.name() == 'request1'}''', response: '''{ req -> '' }''', responseHeaders: '{ _ -> [a: "b"] }', soap: false, statusCode: 200, method: Method.POST),
- new MockReport(name: 'testRest3', path: 'testEndpoint2', port: 9999, predicate: '{ _ -> true }', response: '''{ _ -> '' }''', responseHeaders: '{ _ -> [:] }', soap: false, statusCode: 200, method: Method.POST),
- new MockReport(name: 'testRest4', path: 'testEndpoint', port: 9999, predicate: '{ _ -> true }', response: '''{ _ -> '' }''', responseHeaders: '{ _ -> [:] }', soap: true, statusCode: 204, method: Method.PUT),
- new MockReport(name: 'testRest6', path: 'testEndpoint2', port: 9999, predicate: '{ _ -> true }', response: '''{ _ -> '' }''', responseHeaders: '{ _ -> [:] }', soap: false, statusCode: 200, method: Method.POST)
- ]
+ when:
+ List mockReport = remoteMockServer.listMocks()
+ then:
+ mockReport.size() == 5
+ assertMockReport(mockReport[0], [name:'testRest', path: 'testEndpoint', port: 9999, predicate: '{ _ -> true }', response: '''{ _ -> '' }''', responseHeaders: '{ _ -> [:] }', soap: false, statusCode: 200, method: Method.POST])
+ assertMockReport(mockReport[1], [name: 'testRest2', path: 'testEndpoint', port: 9998, predicate: '''{ req -> req.xml.name() == 'request1'}''', response: '''{ req -> '' }''', responseHeaders: '{ _ -> [a: "b"] }', soap: false, statusCode: 200, method: Method.POST])
+ assertMockReport(mockReport[2], [name: 'testRest3', path: 'testEndpoint2', port: 9999, predicate: '{ _ -> true }', response: '''{ _ -> '' }''', responseHeaders: '{ _ -> [:] }', soap: false, statusCode: 200, method: Method.POST])
+ assertMockReport(mockReport[3], [name: 'testRest4', path: 'testEndpoint', port: 9999, predicate: '{ _ -> true }', response: '''{ _ -> '' }''', responseHeaders: '{ _ -> [:] }', soap: true, statusCode: 204, method: Method.PUT])
+ assertMockReport(mockReport[4], [name: 'testRest6', path: 'testEndpoint2', port: 9999, predicate: '{ _ -> true }', response: '''{ _ -> '' }''', responseHeaders: '{ _ -> [:] }', soap: false, statusCode: 200, method: Method.POST])
+ }
+
+ private void assertMockReport( MockReport mockReport, Map props) {
+ props.each {
+ assert mockReport."${it.key}" == it.value
+ }
}
def "should add mock accepts path certain path params"() {
@@ -718,18 +725,18 @@ class MockServerIntegrationTest extends Specification {
then:
mockEvents1.size() == 2
mockEvents1[0].request.text == ''
- !mockEvents1[0].request.headers?.empty
- mockEvents1[0].request.queryParams == []
- mockEvents1[0].request.paths == ['testEndpoint']
- !mockEvents1[0].response.headers?.empty
+ !mockEvents1[0].request.headers?.headers?.empty
+ mockEvents1[0].request.queryParams.queryParams == []
+ mockEvents1[0].request.path.pathParts == ['testEndpoint']
+ !mockEvents1[0].response.headers?.headers?.empty
mockEvents1[0].response.text == ''
mockEvents1[0].response.statusCode == 201
mockEvents1[1].request.text == ''
- !mockEvents1[1].request.headers?.empty
- mockEvents1[1].request.queryParams == []
- mockEvents1[1].request.paths == ['testEndpoint', 'hello']
- !mockEvents1[1].response.headers?.empty
+ !mockEvents1[1].request.headers?.headers?.empty
+ mockEvents1[1].request.queryParams.queryParams == []
+ mockEvents1[1].request.path.pathParts == ['testEndpoint', 'hello']
+ !mockEvents1[1].response.headers?.headers?.empty
mockEvents1[1].response.text == ''
mockEvents1[1].response.statusCode == 201
when:
@@ -737,10 +744,10 @@ class MockServerIntegrationTest extends Specification {
then:
mockEvents2.size() == 1
mockEvents2[0].request.text == ''
- !mockEvents2[0].request.headers?.empty
- mockEvents2[0].request.queryParams == [new Parameter(name: 'id', value: '123')]
- mockEvents2[0].request.paths == ['testEndpoint']
- mockEvents2[0].response.headers.find { it.name == 'aaa' }?.value == '15'
+ !mockEvents2[0].request.headers?.headers?.empty
+ mockEvents2[0].request.queryParams.queryParams.find { it.name == 'id' }?.value == '123'
+ mockEvents2[0].request.path.pathParts == ['testEndpoint']
+ mockEvents2[0].response.headers.headers.find { it.name == 'aaa' }?.value == '15'
mockEvents2[0].response.text == ''
mockEvents2[0].response.statusCode == 202
}
@@ -793,18 +800,18 @@ class MockServerIntegrationTest extends Specification {
then:
mockEvents1.size() == 2
mockEvents1[0].request.text == ''
- !mockEvents1[0].request.headers?.empty
- mockEvents1[0].request.queryParams == []
- mockEvents1[0].request.paths == ['testEndpoint']
- !mockEvents1[0].response.headers?.empty
+ !mockEvents1[0].request.headers?.headers?.empty
+ mockEvents1[0].request.queryParams.queryParams == []
+ mockEvents1[0].request.path.pathParts == ['testEndpoint']
+ !mockEvents1[0].response.headers?.headers?.empty
mockEvents1[0].response.text == ''
mockEvents1[0].response.statusCode == 201
mockEvents1[1].request.text == ''
- !mockEvents1[1].request.headers?.empty
- mockEvents1[1].request.queryParams == []
- mockEvents1[1].request.paths == ['testEndpoint', 'hello']
- !mockEvents1[1].response.headers?.empty
+ !mockEvents1[1].request.headers?.headers?.empty
+ mockEvents1[1].request.queryParams.queryParams == []
+ mockEvents1[1].request.path.pathParts == ['testEndpoint', 'hello']
+ !mockEvents1[1].response.headers?.headers?.empty
mockEvents1[1].response.text == ''
mockEvents1[1].response.statusCode == 201
when:
@@ -812,10 +819,10 @@ class MockServerIntegrationTest extends Specification {
then:
mockEvents2.size() == 1
mockEvents2[0].request.text == ''
- !mockEvents2[0].request.headers?.empty
- mockEvents2[0].request.queryParams == [new Parameter(name: 'id', value: '123')]
- mockEvents2[0].request.paths == ['testEndpoint']
- mockEvents2[0].response.headers.find {it.name == 'aaa'}?.value == '15'
+ !mockEvents2[0].request.headers?.headers?.empty
+ mockEvents2[0].request.queryParams.queryParams.find{it.name == 'id'}?.value == '123'
+ mockEvents2[0].request.path.pathParts == ['testEndpoint']
+ mockEvents2[0].response.headers.headers.find {it.name == 'aaa'}?.value == '15'
mockEvents2[0].response.text == ''
mockEvents2[0].response.statusCode == 202
}
diff --git a/mockserver/src/main/groovy/pl/touk/mockserver/server/ContextExecutor.groovy b/mockserver/src/main/groovy/pl/touk/mockserver/server/ContextExecutor.groovy
index 545dfed..f450df4 100644
--- a/mockserver/src/main/groovy/pl/touk/mockserver/server/ContextExecutor.groovy
+++ b/mockserver/src/main/groovy/pl/touk/mockserver/server/ContextExecutor.groovy
@@ -3,7 +3,7 @@ package pl.touk.mockserver.server
import com.sun.net.httpserver.HttpExchange
import groovy.transform.PackageScope
import groovy.util.logging.Slf4j
-import pl.touk.mockserver.api.request.Method
+import pl.touk.mockserver.api.common.Method
import java.util.concurrent.CopyOnWriteArrayList
diff --git a/mockserver/src/main/groovy/pl/touk/mockserver/server/HttpMockServer.groovy b/mockserver/src/main/groovy/pl/touk/mockserver/server/HttpMockServer.groovy
index 1b8fc9a..0b601ff 100644
--- a/mockserver/src/main/groovy/pl/touk/mockserver/server/HttpMockServer.groovy
+++ b/mockserver/src/main/groovy/pl/touk/mockserver/server/HttpMockServer.groovy
@@ -2,7 +2,10 @@ package pl.touk.mockserver.server
import com.sun.net.httpserver.HttpExchange
import groovy.util.logging.Slf4j
-import pl.touk.mockserver.api.request.*
+import pl.touk.mockserver.api.request.AddMock
+import pl.touk.mockserver.api.request.MockServerRequest
+import pl.touk.mockserver.api.request.PeekMock
+import pl.touk.mockserver.api.request.RemoveMock
import pl.touk.mockserver.api.response.*
import javax.xml.bind.JAXBContext
@@ -50,7 +53,7 @@ class HttpMockServer {
}
void listMocks(HttpExchange ex) {
- MockListing mockListing = new MockListing(
+ Mocks mockListing = new Mocks(
mocks: listMocks().collect {
new MockReport(
name: it.name,
@@ -126,20 +129,20 @@ class HttpMockServer {
new MockEventReport(
request: new MockRequestReport(
text: it.request.text,
- headers: it.request.headers.collect {
+ headers: new MockRequestReport.Headers(headers: it.request.headers.collect {
new Parameter(name: it.key, value: it.value)
- },
- queryParams: it.request.query.collect {
+ }),
+ queryParams: new MockRequestReport.QueryParams(queryParams: it.request.query.collect {
new Parameter(name: it.key, value: it.value)
- },
- paths: it.request.path
+ }),
+ path: new MockRequestReport.Path(pathParts: it.request.path)
),
response: new MockResponseReport(
statusCode: it.response.statusCode,
text: it.response.text,
- headers: it.response.headers.collect {
+ headers: new MockResponseReport.Headers(headers: it.response.headers.collect {
new Parameter(name: it.key, value: it.value)
- }
+ })
)
)
}
@@ -159,7 +162,7 @@ class HttpMockServer {
}
private static void createErrorResponse(HttpExchange ex, Exception e) {
- createResponse(ex, new ExceptionOccured(message: e.message), 400)
+ createResponse(ex, new ExceptionOccured(value: e.message), 400)
}
void stop() {
diff --git a/mockserver/src/main/groovy/pl/touk/mockserver/server/Mock.groovy b/mockserver/src/main/groovy/pl/touk/mockserver/server/Mock.groovy
index 5f3aa06..32bad68 100644
--- a/mockserver/src/main/groovy/pl/touk/mockserver/server/Mock.groovy
+++ b/mockserver/src/main/groovy/pl/touk/mockserver/server/Mock.groovy
@@ -3,7 +3,7 @@ package pl.touk.mockserver.server
import groovy.transform.EqualsAndHashCode
import groovy.transform.PackageScope
import groovy.util.logging.Slf4j
-import pl.touk.mockserver.api.request.Method
+import pl.touk.mockserver.api.common.Method
import java.util.concurrent.CopyOnWriteArrayList
@@ -79,10 +79,8 @@ class Mock implements Comparable {
}
}
- void setSoap(String soap) {
- if (soap) {
- this.soap = Boolean.valueOf(soap)
- }
+ void setSoap(Boolean soap) {
+ this.soap = soap ?: false
}
void setStatusCode(String statusCode) {