Generate code that respects dots in keys
without this change if the user has jsons that contain `.` in a key (e.g. `foo.bar.baz`) then the produced json path is wrong with this change we're wrapping all keys in `[' ']` format (e.g. `['foo.bar.baz']`) so that the json path gets properly translated fixes #269
This commit is contained in:
@@ -16,12 +16,12 @@
|
||||
|
||||
package org.springframework.cloud.contract.verifier.util;
|
||||
|
||||
import static org.apache.commons.lang3.StringEscapeUtils.escapeJava;
|
||||
import com.toomuchcoding.jsonassert.JsonVerifiable;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import com.toomuchcoding.jsonassert.JsonVerifiable;
|
||||
import static org.apache.commons.lang3.StringEscapeUtils.escapeJava;
|
||||
|
||||
/**
|
||||
* Implementation of the {@link MethodBufferingJsonVerifiable} that contains a list
|
||||
@@ -84,9 +84,9 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable {
|
||||
Object valueToPut = value instanceof ShouldTraverse ? ((ShouldTraverse) value).value : value;
|
||||
DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable(this.delegate.field(valueToPut), this.methodsBuffer);
|
||||
if (this.delegate.isIteratingOverArray() && !(value instanceof ShouldTraverse)) {
|
||||
verifiable.appendMethodWithQuotedValue("contains", valueToPut);
|
||||
verifiable.appendMethodWithQuotedValue("contains", wrapInBrackets(valueToPut));
|
||||
} else {
|
||||
verifiable.appendMethodWithQuotedValue("field", valueToPut);
|
||||
verifiable.appendMethodWithQuotedValue("field", wrapInBrackets(valueToPut));
|
||||
}
|
||||
return verifiable;
|
||||
}
|
||||
@@ -103,14 +103,14 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable {
|
||||
@Override
|
||||
public MethodBufferingJsonVerifiable array(Object value) {
|
||||
DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable(this.delegate.array(value), this.methodsBuffer);
|
||||
verifiable.appendMethodWithQuotedValue("array", value);
|
||||
verifiable.appendMethodWithQuotedValue("array", wrapInBrackets(value));
|
||||
return verifiable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MethodBufferingJsonVerifiable arrayField(Object value) {
|
||||
DelegatingJsonVerifiable verifiable = new DelegatingJsonVerifiable(this.delegate.field(value).arrayField(), this.methodsBuffer);
|
||||
verifiable.appendMethodWithQuotedValue("array", value);
|
||||
verifiable.appendMethodWithQuotedValue("array", wrapInBrackets(value));
|
||||
return verifiable;
|
||||
}
|
||||
|
||||
@@ -289,6 +289,14 @@ class DelegatingJsonVerifiable implements MethodBufferingJsonVerifiable {
|
||||
return this.delegate.isAssertingAValueInArray();
|
||||
}
|
||||
|
||||
// Related to https://github.com/spring-cloud/spring-cloud-contract/issues/269
|
||||
private Object wrapInBrackets(Object name) {
|
||||
if (name instanceof Number) {
|
||||
return name;
|
||||
}
|
||||
return "['" + name.toString() + "']";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String method() {
|
||||
return createMethodString();
|
||||
|
||||
@@ -279,7 +279,7 @@ class ContractHttpDocsSpec extends Specification {
|
||||
response.header('Content-Type') == 'application/json'
|
||||
and:
|
||||
DocumentContext parsedJson = JsonPath.parse(response.body.asString())
|
||||
assertThatJson(parsedJson).field("code").matches("(123123)?")
|
||||
assertThatJson(parsedJson).field("['code']").matches("(123123)?")
|
||||
"""
|
||||
// end::optionals_test[]
|
||||
stripped(blockBuilder.toString()) == stripped(expectedTest)
|
||||
|
||||
@@ -52,8 +52,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").isEqualTo("b")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").isEqualTo("b")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -86,9 +86,9 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property3").isEqualTo(false)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").isNull()""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("true")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property3']").isEqualTo(false)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").isNull()""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("true")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new ContractMetadata(null, false, 0, null), contractDsl).toWireMockClientStub())
|
||||
and:
|
||||
@@ -123,9 +123,9 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("a").isEqualTo("sth")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("b").isEqualTo("sthElse")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").contains("['a']").isEqualTo("sth")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").contains("['b']").isEqualTo("sthElse")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new ContractMetadata(null, false, 0, null), contractDsl).toWireMockClientStub())
|
||||
and:
|
||||
@@ -162,10 +162,10 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("a").isEqualTo("sth")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").hasSize(2)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("b").isEqualTo("sthElse")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").contains("['a']").isEqualTo("sth")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").hasSize(2)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").contains("['b']").isEqualTo("sthElse")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(new WireMockStubStrategy("Test", new ContractMetadata(null, false, 0, null), contractDsl).toWireMockClientStub())
|
||||
and:
|
||||
@@ -261,8 +261,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property2").isEqualTo("b")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("['property1']").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("['property2']").isEqualTo("b")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -295,8 +295,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property2").isEqualTo("test1")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property3").isEqualTo("test2")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property1']").contains("['property2']").isEqualTo("test1")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property1']").contains("['property3']").isEqualTo("test2")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -329,8 +329,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").field("property3").isEqualTo("b")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").field("['property3']").isEqualTo("b")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -368,8 +368,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -400,8 +400,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -521,8 +521,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
test.contains(modifyStringIfRequired.call("queryParam('age', '99'"))
|
||||
test.contains(modifyStringIfRequired.call("queryParam('name', 'Denis.Stepanov'"))
|
||||
test.contains(modifyStringIfRequired.call("queryParam('email', 'bob@email.com'"))
|
||||
test.contains(modifyStringIfRequired.call("""assertThatJson(parsedJson).field("property1").isEqualTo("a")"""))
|
||||
test.contains(modifyStringIfRequired.call("""assertThatJson(parsedJson).field("property2").isEqualTo("b")"""))
|
||||
test.contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
test.contains("""assertThatJson(parsedJson).field("['property2']").isEqualTo("b")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -578,8 +578,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
test.contains(modifyStringIfRequired.call("queryParam('age', '99'"))
|
||||
test.contains(modifyStringIfRequired.call("queryParam('name', 'Denis.Stepanov'"))
|
||||
test.contains(modifyStringIfRequired.call("queryParam('email', 'bob@email.com'"))
|
||||
test.contains(modifyStringIfRequired.call("""assertThatJson(parsedJson).field("property1").isEqualTo("a")"""))
|
||||
test.contains(modifyStringIfRequired.call("""assertThatJson(parsedJson).field("property2").isEqualTo("b")"""))
|
||||
test.contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
test.contains("""assertThatJson(parsedJson).field("['property2']").isEqualTo("b")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -743,7 +743,7 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
assertThat(response.getStatus()).isEqualTo(200);
|
||||
// and:
|
||||
DocumentContext parsedJson = JsonPath.parse(responseAsString);
|
||||
assertThatJson(parsedJson).field("property1").isEqualTo("a");
|
||||
assertThatJson(parsedJson).field("['property1']").isEqualTo("a");
|
||||
'''
|
||||
// end::jaxrs[]
|
||||
stripped(test) == stripped(expectedResponse)
|
||||
@@ -966,8 +966,8 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -1037,21 +1037,21 @@ class JaxRsClientMethodBuilderSpec extends Specification implements WireMockStub
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains('assertThatJson(parsedJson).field("aBoolean").matches("(true|false)")')
|
||||
test.contains('assertThatJson(parsedJson).field("alpha").matches("[\\\\p{L}]*")')
|
||||
test.contains('assertThatJson(parsedJson).field("hostname").matches("((http[s]?|ftp):/)/?([^:/\\\\s]+)(:[0-9]{1,5})?")')
|
||||
test.contains('assertThatJson(parsedJson).field("url").matches("^(?:(?:[A-Za-z][+-.\\\\w^_]*:/{2})?(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))(?::\\\\d{2,5})?(?:/\\\\S*)?)')
|
||||
test.contains('assertThatJson(parsedJson).field("number").matches("-?\\\\d*(\\\\.\\\\d+)?")')
|
||||
test.contains('assertThatJson(parsedJson).field("email").matches("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4}")')
|
||||
test.contains('assertThatJson(parsedJson).field("ip").matches("([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])")')
|
||||
test.contains('assertThatJson(parsedJson).field("uuid").matches("[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}")')
|
||||
test.contains('assertThatJson(parsedJson).field("date").matches("(\\\\d\\\\d\\\\d\\\\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])")')
|
||||
test.contains('assertThatJson(parsedJson).field("dateTime").matches("([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])")')
|
||||
test.contains('assertThatJson(parsedJson).field("time").matches("(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])")')
|
||||
test.contains('assertThatJson(parsedJson).field("iso8601WithOffset").matches("([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\\\.\\\\d{3})?(Z|[+-][01]\\\\d:[0-5]\\\\d)")')
|
||||
test.contains('assertThatJson(parsedJson).field("nonBlankString").matches(".*(\\\\S+|\\\\R).*|!^\\\\R*' + endOfLineRegexSymbol + '")')
|
||||
test.contains('assertThatJson(parsedJson).field("nonEmptyString").matches(".+")')
|
||||
test.contains('assertThatJson(parsedJson).field("anyOf").matches("^foo' + endOfLineRegexSymbol + '|^bar' + endOfLineRegexSymbol + '")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'aBoolean\']").matches("(true|false)")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'alpha\']").matches("[\\\\p{L}]*")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'hostname\']").matches("((http[s]?|ftp):/)/?([^:/\\\\s]+)(:[0-9]{1,5})?")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'url\']").matches("^(?:(?:[A-Za-z][+-.\\\\w^_]*:/{2})?(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))(?::\\\\d{2,5})?(?:/\\\\S*)?)')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'number\']").matches("-?\\\\d*(\\\\.\\\\d+)?")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'email\']").matches("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4}")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'ip\']").matches("([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'uuid\']").matches("[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'date\']").matches("(\\\\d\\\\d\\\\d\\\\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'dateTime\']").matches("([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'time\']").matches("(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'iso8601WithOffset\']").matches("([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\\\.\\\\d{3})?(Z|[+-][01]\\\\d:[0-5]\\\\d)")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'nonBlankString\']").matches(".*(\\\\S+|\\\\R).*|!^\\\\R*' + endOfLineRegexSymbol + '")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'nonEmptyString\']").matches(".+")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'anyOf\']").matches("^foo' + endOfLineRegexSymbol + '|^bar' + endOfLineRegexSymbol + '")')
|
||||
!test.contains('cursor')
|
||||
!test.contains('REGEXP>>')
|
||||
and:
|
||||
|
||||
@@ -127,8 +127,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").isEqualTo("b")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").isEqualTo("b")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -161,9 +161,9 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("true")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").isNull()""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property3").isEqualTo(false)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("true")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").isNull()""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property3']").isEqualTo(false)""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -198,9 +198,9 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("a").isEqualTo("sth")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("b").isEqualTo("sthElse")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").contains("['a']").isEqualTo("sth")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").contains("['b']").isEqualTo("sthElse")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -237,10 +237,10 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("a").isEqualTo("sth")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").hasSize(2)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property2").contains("b").isEqualTo("sthElse")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").contains("['a']").isEqualTo("sth")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").hasSize(2)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property2']").contains("['b']").isEqualTo("sthElse")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -336,8 +336,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property").field(7).isEqualTo(0.0)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property").field(14).isEqualTo(0.0)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property']").field(7).isEqualTo(0.0)""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property']").field(14).isEqualTo(0.0)""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -371,8 +371,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property2").isEqualTo("b")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("['property2']").isEqualTo("b")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array().contains("['property1']").isEqualTo("a")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -405,8 +405,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property2").isEqualTo("test1")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("property1").contains("property3").isEqualTo("test2")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property1']").contains("['property2']").isEqualTo("test1")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).array("['property1']").contains("['property3']").isEqualTo("test2")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -439,8 +439,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").field("property3").isEqualTo("b")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").field("['property3']").isEqualTo("b")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -477,8 +477,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -511,8 +511,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property2").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property1").isEqualTo("a")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property2']").matches("[0-9]{3}")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property1']").isEqualTo("a")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -546,7 +546,7 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
when:
|
||||
builder.appendTo(blockBuilder)
|
||||
then:
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("property").matches("\\\\d+")""")
|
||||
blockBuilder.toString().contains("""assertThatJson(parsedJson).field("['property']").matches("\\\\d+")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -602,8 +602,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
test.contains('''.queryParam("name","Denis.Stepanov")''')
|
||||
test.contains('''.queryParam("email","bob@email.com")''')
|
||||
test.contains('''.get("/users")''')
|
||||
test.contains('assertThatJson(parsedJson).field("property1").isEqualTo("a")')
|
||||
test.contains('assertThatJson(parsedJson).field("property2").isEqualTo("b")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'property1\']").isEqualTo("a")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'property2\']").isEqualTo("b")')
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -660,8 +660,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
test.contains('''.queryParam("name","Denis.Stepanov")''')
|
||||
test.contains('''.queryParam("email","bob@email.com")''')
|
||||
test.contains('''.get("/foo/123456")''')
|
||||
test.contains('assertThatJson(parsedJson).field("property1").isEqualTo("a")')
|
||||
test.contains('assertThatJson(parsedJson).field("property2").isEqualTo("b")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'property1\']").isEqualTo("a")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'property2\']").isEqualTo("b")')
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -844,8 +844,8 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains("""assertThatJson(parsedJson).array("errors").contains("property").isEqualTo("bank_account_number")""")
|
||||
test.contains("""assertThatJson(parsedJson).array("errors").contains("message").isEqualTo("incorrect_format")""")
|
||||
test.contains("""assertThatJson(parsedJson).array("['errors']").contains("['property']").isEqualTo("bank_account_number")""")
|
||||
test.contains("""assertThatJson(parsedJson).array("['errors']").contains("['message']").isEqualTo("incorrect_format")""")
|
||||
and:
|
||||
stubMappingIsValidWireMockStub(contractDsl)
|
||||
and:
|
||||
@@ -923,7 +923,7 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains("""assertThatJson(parsedJson).field("message").matches("User not found by email = \\\\\\\\[[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\\\\\.[a-zA-Z]{2,4}\\\\\\\\]")""")
|
||||
test.contains("""assertThatJson(parsedJson).field("['message']").matches("User not found by email = \\\\\\\\[[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\\\\\.[a-zA-Z]{2,4}\\\\\\\\]")""")
|
||||
and:
|
||||
// no static compilation due to bug in Groovy https://issues.apache.org/jira/browse/GROOVY-8055
|
||||
SyntaxChecker.tryToCompileWithoutCompileStatic(methodBuilderName, blockBuilder.toString())
|
||||
@@ -943,7 +943,7 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains('''"email":"abc@abc.com"''')
|
||||
test.contains("""assertThatJson(parsedJson).field("code").matches("(123123)?")""")
|
||||
test.contains("""assertThatJson(parsedJson).field("['code']").matches("(123123)?")""")
|
||||
!test.contains('''REGEXP''')
|
||||
!test.contains('''OPTIONAL''')
|
||||
!test.contains('''OptionalProperty''')
|
||||
@@ -963,7 +963,7 @@ class MockMvcMethodBodyBuilderSpec extends Specification implements WireMockStub
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains('\\"email\\":\\"abc@abc.com\\"')
|
||||
test.contains('assertThatJson(parsedJson).field("code").matches("(123123)?");')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'code\']").matches("(123123)?");')
|
||||
!test.contains('''REGEXP''')
|
||||
!test.contains('''OPTIONAL''')
|
||||
!test.contains('''OptionalProperty''')
|
||||
@@ -1274,7 +1274,7 @@ World.'''"""
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains('''assertThatJson(parsedJson).array("authorities").arrayField().matches("^[a-zA-Z0-9_\\\\- ]+\\$").value()''')
|
||||
test.contains('''assertThatJson(parsedJson).array("[\'authorities']").arrayField().matches("^[a-zA-Z0-9_\\\\- ]+\\$").value()''')
|
||||
and:
|
||||
SyntaxChecker.tryToCompileGroovy(blockBuilder.toString())
|
||||
}
|
||||
@@ -1310,7 +1310,7 @@ World.'''"""
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains('''assertThatJson(parsedJson).array("authorities").arrayField().matches("^[a-zA-Z0-9_\\\\- ]+$").value()''')
|
||||
test.contains('''assertThatJson(parsedJson).array("[\'authorities']").arrayField().matches("^[a-zA-Z0-9_\\\\- ]+$").value()''')
|
||||
and:
|
||||
SyntaxChecker.tryToCompileJava(blockBuilder.toString())
|
||||
}
|
||||
@@ -1337,7 +1337,7 @@ World.'''"""
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
!test.contains('''assertThatJson(parsedJson).field("rejectionReason").isEqualTo("assertThatRejectionReasonIsNull("''')
|
||||
!test.contains('''assertThatJson(parsedJson).field("[\'rejectionReason']").isEqualTo("assertThatRejectionReasonIsNull("''')
|
||||
test.contains('''assertThatRejectionReasonIsNull(''')
|
||||
where:
|
||||
methodBuilderName | methodBuilder
|
||||
@@ -1373,7 +1373,7 @@ World.'''"""
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains('assertThatJson(parsedJson).array().contains("id").matches("[0-9]+")')
|
||||
test.contains('assertThatJson(parsedJson).array().contains("[\'id\']").matches("[0-9]+")')
|
||||
and:
|
||||
SyntaxChecker.tryToCompileGroovy(blockBuilder.toString())
|
||||
}
|
||||
@@ -1540,8 +1540,8 @@ World.'''"""
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains('assertThatJson(parsedJson).array("partners").array("payment_methods").arrayField().isEqualTo("BANK").value()')
|
||||
test.contains('assertThatJson(parsedJson).array("partners").array("payment_methods").arrayField().isEqualTo("CASH").value()')
|
||||
test.contains('assertThatJson(parsedJson).array("[\'partners\']").array("[\'payment_methods\']").arrayField().isEqualTo("BANK").value()')
|
||||
test.contains('assertThatJson(parsedJson).array("[\'partners\']").array("[\'payment_methods\']").arrayField().isEqualTo("CASH").value()')
|
||||
and:
|
||||
SyntaxChecker.tryToCompile(methodBuilderName, blockBuilder.toString())
|
||||
where:
|
||||
@@ -1569,7 +1569,7 @@ World.'''"""
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains('assertThatJson(parsedJson).field("message").matches("^(?!\\\\s*\\$).+")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'message\']").matches("^(?!\\\\s*\\$).+")')
|
||||
and:
|
||||
SyntaxChecker.tryToCompileGroovy(blockBuilder.toString(), false)
|
||||
}
|
||||
@@ -1661,7 +1661,7 @@ World.'''"""
|
||||
strippedTest.matches(""".*put\\("/foo/[0-9]{5}"\\).*""")
|
||||
strippedTest.contains("""response.header('Content-Type') ==~ java.util.regex.Pattern.compile('application/vnd\\\\.fraud\\\\.v1\\\\+json.*')""")
|
||||
"application/vnd.fraud.v1+json;charset=UTF-8".matches('application/vnd\\.fraud\\.v1\\+json.*')
|
||||
strippedTest.contains("""assertThatJson(parsedJson).field("responseElement").matches("[0-9]{7}")""")
|
||||
strippedTest.contains("""assertThatJson(parsedJson).field("['responseElement']").matches("[0-9]{7}")""")
|
||||
and:
|
||||
SyntaxChecker.tryToCompileGroovy(blockBuilder.toString())
|
||||
}
|
||||
@@ -1938,21 +1938,21 @@ World.'''"""
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
test.contains('assertThatJson(parsedJson).field("aBoolean").matches("(true|false)")')
|
||||
test.contains('assertThatJson(parsedJson).field("alpha").matches("[\\\\p{L}]*")')
|
||||
test.contains('assertThatJson(parsedJson).field("hostname").matches("((http[s]?|ftp):/)/?([^:/\\\\s]+)(:[0-9]{1,5})?")')
|
||||
test.contains('assertThatJson(parsedJson).field("url").matches("^(?:(?:[A-Za-z][+-.\\\\w^_]*:/{2})?(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))(?::\\\\d{2,5})?(?:/\\\\S*)?)')
|
||||
test.contains('assertThatJson(parsedJson).field("number").matches("-?\\\\d*(\\\\.\\\\d+)?")')
|
||||
test.contains('assertThatJson(parsedJson).field("email").matches("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4}")')
|
||||
test.contains('assertThatJson(parsedJson).field("ip").matches("([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])")')
|
||||
test.contains('assertThatJson(parsedJson).field("uuid").matches("[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}")')
|
||||
test.contains('assertThatJson(parsedJson).field("date").matches("(\\\\d\\\\d\\\\d\\\\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])')
|
||||
test.contains('assertThatJson(parsedJson).field("dateTime").matches("([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])')
|
||||
test.contains('assertThatJson(parsedJson).field("time").matches("(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])")')
|
||||
test.contains('assertThatJson(parsedJson).field("iso8601WithOffset").matches("([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\\\.\\\\d{3})?(Z|[+-][01]\\\\d:[0-5]\\\\d)")')
|
||||
test.contains('assertThatJson(parsedJson).field("nonBlankString").matches(".*(\\\\S+|\\\\R).*|!^\\\\R*' + endOfLineRegExSymbol + '")')
|
||||
test.contains('assertThatJson(parsedJson).field("nonEmptyString").matches(".+")')
|
||||
test.contains('assertThatJson(parsedJson).field("anyOf").matches("^foo' + endOfLineRegExSymbol + '|^bar' + endOfLineRegExSymbol + '")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'aBoolean\']").matches("(true|false)")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'alpha\']").matches("[\\\\p{L}]*")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'hostname\']").matches("((http[s]?|ftp):/)/?([^:/\\\\s]+)(:[0-9]{1,5})?")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'url\']").matches("^(?:(?:[A-Za-z][+-.\\\\w^_]*:/{2})?(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))(?::\\\\d{2,5})?(?:/\\\\S*)?)')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'number\']").matches("-?\\\\d*(\\\\.\\\\d+)?")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'email\']").matches("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,4}")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'ip\']").matches("([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])\\\\.([01]?\\\\d\\\\d?|2[0-4]\\\\d|25[0-5])")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'uuid\']").matches("[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'date\']").matches("(\\\\d\\\\d\\\\d\\\\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'dateTime\']").matches("([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'time\']").matches("(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'iso8601WithOffset\']").matches("([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\\\\.\\\\d{3})?(Z|[+-][01]\\\\d:[0-5]\\\\d)")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'nonBlankString\']").matches(".*(\\\\S+|\\\\R).*|!^\\\\R*' + endOfLineRegExSymbol + '")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'nonEmptyString\']").matches(".+")')
|
||||
test.contains('assertThatJson(parsedJson).field("[\'anyOf\']").matches("^foo' + endOfLineRegExSymbol + '|^bar' + endOfLineRegExSymbol + '")')
|
||||
!test.contains('cursor')
|
||||
!test.contains('REGEXP>>')
|
||||
and:
|
||||
@@ -2066,7 +2066,7 @@ DocumentContext parsedJson = JsonPath.parse(json);
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
!test.contains('assertThatJson(parsedJson).field("a").isEqualTo(1)')
|
||||
!test.contains('assertThatJson(parsedJson).field("[\'a\']").isEqualTo(1)')
|
||||
test.contains(expectedAssertion)
|
||||
and:
|
||||
SyntaxChecker.tryToCompile(methodBuilderName, blockBuilder.toString())
|
||||
@@ -2103,8 +2103,8 @@ DocumentContext parsedJson = JsonPath.parse(json);
|
||||
builder.appendTo(blockBuilder)
|
||||
def test = blockBuilder.toString()
|
||||
then:
|
||||
// test.contains('assertThatJson(parsedJson).field("bar").matches("some value \\"with quote\\"|bar")')
|
||||
// and:
|
||||
test.contains('assertThatJson(parsedJson).field("[\'bar\']").matches("some value \\"with quote\\"|bar")')
|
||||
and:
|
||||
SyntaxChecker.tryToCompile(methodBuilderName, blockBuilder.toString())
|
||||
where:
|
||||
//order is inverted cause Intellij didn't parse this properly
|
||||
@@ -2172,8 +2172,8 @@ DocumentContext parsedJson = JsonPath.parse(json);
|
||||
when:
|
||||
SyntaxChecker.tryToCompile(methodBuilderName, test)
|
||||
then:
|
||||
test.contains('assertThatJson(parsedJson).array("list").isEmpty()')
|
||||
!test.contains('assertThatJson(parsedJson).array("foo").isEmpty()')
|
||||
test.contains('assertThatJson(parsedJson).array("[\'list\']").isEmpty()')
|
||||
!test.contains('assertThatJson(parsedJson).array("[\'foo\']").isEmpty()')
|
||||
where:
|
||||
methodBuilderName | methodBuilder
|
||||
"MockMvcSpockMethodBuilder" | { Contract dsl -> new MockMvcSpockMethodRequestProcessingBodyBuilder(dsl, properties) }
|
||||
|
||||
@@ -38,23 +38,23 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").field("json").isEqualTo("with value")""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").field("['json']").isEqualTo("with value")""" &&
|
||||
it.jsonPath() == '''$[*].some.nested[?(@.json == 'with value')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").field("anothervalue").isEqualTo(4)""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").field("['anothervalue']").isEqualTo(4)""" &&
|
||||
it.jsonPath() == '''$[*].some.nested[?(@.anothervalue == 4)]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").array("withlist").contains("name").isEqualTo("name1")""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").array("['withlist']").contains("['name']").isEqualTo("name1")""" &&
|
||||
it.jsonPath() == '''$[*].some.nested.withlist[*][?(@.name == 'name1')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").array("withlist").contains("name").isEqualTo("name2")""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").array("['withlist']").contains("['name']").isEqualTo("name2")""" &&
|
||||
it.jsonPath() == '''$[*].some.nested.withlist[*][?(@.name == 'name2')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").array("withlist").field("anothernested").field("name").isEqualTo("name3")""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").array("['withlist']").field("['anothernested']").field("['name']").isEqualTo("name3")""" &&
|
||||
it.jsonPath() == '''$[*].some.nested.withlist[*].anothernested[?(@.name == 'name3')]'''
|
||||
}
|
||||
and:
|
||||
@@ -131,19 +131,19 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method() == """.field("some").field("nested").field("json").isEqualTo("with value")""" &&
|
||||
it.method() == """.field("['some']").field("['nested']").field("['json']").isEqualTo("with value")""" &&
|
||||
it.jsonPath() == '''$.some.nested[?(@.json == 'with value')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.field("some").field("nested").field("anothervalue").isEqualTo(4)""" &&
|
||||
it.method() == """.field("['some']").field("['nested']").field("['anothervalue']").isEqualTo(4)""" &&
|
||||
it.jsonPath() == '''$.some.nested[?(@.anothervalue == 4)]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.field("some").field("nested").array("withlist").contains("name").isEqualTo("name1")""" &&
|
||||
it.method() == """.field("['some']").field("['nested']").array("['withlist']").contains("['name']").isEqualTo("name1")""" &&
|
||||
it.jsonPath() == '''$.some.nested.withlist[*][?(@.name == 'name1')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.field("some").field("nested").array("withlist").contains("name").isEqualTo("name2")""" &&
|
||||
it.method() == """.field("['some']").field("['nested']").array("['withlist']").contains("['name']").isEqualTo("name2")""" &&
|
||||
it.jsonPath() == '''$.some.nested.withlist[*][?(@.name == 'name2')]'''
|
||||
}
|
||||
and:
|
||||
@@ -161,7 +161,7 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method() == """.array("items").arrayField().isEqualTo("HOP").value()""" &&
|
||||
it.method() == """.array("['items']").arrayField().isEqualTo("HOP").value()""" &&
|
||||
it.jsonPath() == '''$.items[?(@ == 'HOP')]'''
|
||||
}
|
||||
and:
|
||||
@@ -180,11 +180,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method() == """.field("property1").isNull()""" &&
|
||||
it.method() == """.field("['property1']").isNull()""" &&
|
||||
it.jsonPath() == '''$[?(@.property1 == null)]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.field("property2").isEqualTo(true)""" &&
|
||||
it.method() == """.field("['property2']").isEqualTo(true)""" &&
|
||||
it.jsonPath() == '''$[?(@.property2 == true)]'''
|
||||
}
|
||||
}
|
||||
@@ -199,15 +199,15 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method() == """.field("extensions").field("7").isEqualTo(28.00)""" &&
|
||||
it.method() == """.field("['extensions']").field("['7']").isEqualTo(28.00)""" &&
|
||||
it.jsonPath() == '''$.extensions[?(@.7 == 28.00)]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.field("extensions").field("14").isEqualTo(41.00)""" &&
|
||||
it.method() == """.field("['extensions']").field("['14']").isEqualTo(41.00)""" &&
|
||||
it.jsonPath() == '''$.extensions[?(@.14 == 41.00)]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.field("extensions").field("30").isEqualTo(60.00)""" &&
|
||||
it.method() == """.field("['extensions']").field("['30']").isEqualTo(60.00)""" &&
|
||||
it.jsonPath() == '''$.extensions[?(@.30 == 60.00)]'''
|
||||
}
|
||||
and:
|
||||
@@ -228,15 +228,15 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method() == """.array("errors").contains("property").isEqualTo("email")""" &&
|
||||
it.method() == """.array("['errors']").contains("['property']").isEqualTo("email")""" &&
|
||||
it.jsonPath() == '''$.errors[*][?(@.property == 'email')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array("errors").contains("message").isEqualTo("inconsistent value")""" &&
|
||||
it.method() == """.array("['errors']").contains("['message']").isEqualTo("inconsistent value")""" &&
|
||||
it.jsonPath() == '''$.errors[*][?(@.message == 'inconsistent value')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array("errors").contains("message").isEqualTo("inconsistent value2")""" &&
|
||||
it.method() == """.array("['errors']").contains("['message']").isEqualTo("inconsistent value2")""" &&
|
||||
it.jsonPath() == '''$.errors[*][?(@.message == 'inconsistent value2')]'''
|
||||
}
|
||||
and:
|
||||
@@ -279,23 +279,23 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(json)
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").field("json").isEqualTo("with value")""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").field("['json']").isEqualTo("with value")""" &&
|
||||
it.jsonPath() == '''$[*].some.nested[?(@.json == 'with value')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").field("anothervalue").isEqualTo(4)""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").field("['anothervalue']").isEqualTo(4)""" &&
|
||||
it.jsonPath() == '''$[*].some.nested[?(@.anothervalue == 4)]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").array("withlist").contains("name").isEqualTo("name1")""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").array("['withlist']").contains("['name']").isEqualTo("name1")""" &&
|
||||
it.jsonPath() == '''$[*].some.nested.withlist[*][?(@.name == 'name1')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").array("withlist").contains("name").isEqualTo("name2")""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").array("['withlist']").contains("['name']").isEqualTo("name2")""" &&
|
||||
it.jsonPath() == '''$[*].some.nested.withlist[*][?(@.name == 'name2')]'''
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method() == """.array().field("some").field("nested").array("withlist").field("anothernested").field("name").matches("[a-zA-Z]+")""" &&
|
||||
it.method() == """.array().field("['some']").field("['nested']").array("['withlist']").field("['anothernested']").field("['name']").matches("[a-zA-Z]+")""" &&
|
||||
it.jsonPath() == '''$[*].some.nested.withlist[*].anothernested[?(@.name =~ /[a-zA-Z]+/)]'''
|
||||
}
|
||||
when:
|
||||
@@ -315,11 +315,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property1").isEqualTo("a")""" &&
|
||||
it.method()== """.field("['property1']").isEqualTo("a")""" &&
|
||||
it.jsonPath() == """\$[?(@.property1 == 'a')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property2").isEqualTo("b")""" &&
|
||||
it.method()== """.field("['property2']").isEqualTo("b")""" &&
|
||||
it.jsonPath() == """\$[?(@.property2 == 'b')]"""
|
||||
}
|
||||
and:
|
||||
@@ -337,15 +337,15 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property1").isEqualTo("true")""" &&
|
||||
it.method()== """.field("['property1']").isEqualTo("true")""" &&
|
||||
it.jsonPath() == """\$[?(@.property1 == 'true')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property2").isNull()""" &&
|
||||
it.method()== """.field("['property2']").isNull()""" &&
|
||||
it.jsonPath() == """\$[?(@.property2 == null)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property3").isEqualTo(false)""" &&
|
||||
it.method()== """.field("['property3']").isEqualTo(false)""" &&
|
||||
it.jsonPath() == """\$[?(@.property3 == false)]"""
|
||||
}
|
||||
and:
|
||||
@@ -365,15 +365,15 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(json)
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property1").isEqualTo("a")""" &&
|
||||
it.method()== """.field("['property1']").isEqualTo("a")""" &&
|
||||
it.jsonPath() == """\$[?(@.property1 == 'a')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property2").contains("a").isEqualTo("sth")""" &&
|
||||
it.method()== """.array("['property2']").contains("['a']").isEqualTo("sth")""" &&
|
||||
it.jsonPath() == """\$.property2[*][?(@.a == 'sth')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property2").contains("b").isEqualTo("sthElse")""" &&
|
||||
it.method()== """.array("['property2']").contains("['b']").isEqualTo("sthElse")""" &&
|
||||
it.jsonPath() == """\$.property2[*][?(@.b == 'sthElse')]"""
|
||||
}
|
||||
and:
|
||||
@@ -395,19 +395,19 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(json)
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property1").isEqualTo("a")""" &&
|
||||
it.method()== """.field("['property1']").isEqualTo("a")""" &&
|
||||
it.jsonPath() == """\$[?(@.property1 == 'a')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property2").contains("a").isEqualTo("sth")""" &&
|
||||
it.method()== """.array("['property2']").contains("['a']").isEqualTo("sth")""" &&
|
||||
it.jsonPath() == """\$.property2[*][?(@.a == 'sth')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property2").hasSize(2)""" &&
|
||||
it.method()== """.array("['property2']").hasSize(2)""" &&
|
||||
it.jsonPath() == """\$.property2[*]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property2").contains("b").isEqualTo("sthElse")""" &&
|
||||
it.method()== """.array("['property2']").contains("['b']").isEqualTo("sthElse")""" &&
|
||||
it.jsonPath() == """\$.property2[*][?(@.b == 'sthElse')]"""
|
||||
}
|
||||
and:
|
||||
@@ -426,11 +426,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(json)
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property").field(7).isEqualTo(0.0)""" &&
|
||||
it.method()== """.field("['property']").field(7).isEqualTo(0.0)""" &&
|
||||
it.jsonPath() == """\$.property[?(@.7 == 0.0)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property").field(14).isEqualTo(0.0)""" &&
|
||||
it.method()== """.field("['property']").field(14).isEqualTo(0.0)""" &&
|
||||
it.jsonPath() == """\$.property[?(@.14 == 0.0)]"""
|
||||
}
|
||||
and:
|
||||
@@ -450,11 +450,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().contains("property1").isEqualTo("a")""" &&
|
||||
it.method()== """.array().contains("['property1']").isEqualTo("a")""" &&
|
||||
it.jsonPath() == """\$[*][?(@.property1 == 'a')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().contains("property2").isEqualTo("b")""" &&
|
||||
it.method()== """.array().contains("['property2']").isEqualTo("b")""" &&
|
||||
it.jsonPath() == """\$[*][?(@.property2 == 'b')]"""
|
||||
}
|
||||
and:
|
||||
@@ -476,11 +476,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().contains("property1").isEqualTo("a")""" &&
|
||||
it.method()== """.array().contains("['property1']").isEqualTo("a")""" &&
|
||||
it.jsonPath() == """\$[*][?(@.property1 == 'a')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().contains("property2").isEqualTo("b")""" &&
|
||||
it.method()== """.array().contains("['property2']").isEqualTo("b")""" &&
|
||||
it.jsonPath() == """\$[*][?(@.property2 == 'b')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
@@ -503,11 +503,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property1").contains("property2").isEqualTo("test1")""" &&
|
||||
it.method()== """.array("['property1']").contains("['property2']").isEqualTo("test1")""" &&
|
||||
it.jsonPath() == """\$.property1[*][?(@.property2 == 'test1')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property1").contains("property3").isEqualTo("test2")""" &&
|
||||
it.method()== """.array("['property1']").contains("['property3']").isEqualTo("test2")""" &&
|
||||
it.jsonPath() == """\$.property1[*][?(@.property3 == 'test2')]"""
|
||||
}
|
||||
and:
|
||||
@@ -528,15 +528,15 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property1").contains("property2").isEqualTo("test1")""" &&
|
||||
it.method()== """.array("['property1']").contains("['property2']").isEqualTo("test1")""" &&
|
||||
it.jsonPath() == """\$.property1[*][?(@.property2 == 'test1')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property1").contains("property3").isEqualTo("test2")""" &&
|
||||
it.method()== """.array("['property1']").contains("['property3']").isEqualTo("test2")""" &&
|
||||
it.jsonPath() == """\$.property1[*][?(@.property3 == 'test2')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("property1").hasSize(2)""" &&
|
||||
it.method()== """.array("['property1']").hasSize(2)""" &&
|
||||
it.jsonPath() == """\$.property1[*]"""
|
||||
}
|
||||
and:
|
||||
@@ -553,11 +553,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property2").field("property3").isEqualTo("b")""" &&
|
||||
it.method()== """.field("['property2']").field("['property3']").isEqualTo("b")""" &&
|
||||
it.jsonPath() == """\$.property2[?(@.property3 == 'b')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property1").isEqualTo("a")""" &&
|
||||
it.method()== """.field("['property1']").isEqualTo("a")""" &&
|
||||
it.jsonPath() == """\$[?(@.property1 == 'a')]"""
|
||||
}
|
||||
and:
|
||||
@@ -574,11 +574,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(json)
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property2").matches("[0-9]{3}")""" &&
|
||||
it.method()== """.field("['property2']").matches("[0-9]{3}")""" &&
|
||||
it.jsonPath() == """\$[?(@.property2 =~ /[0-9]{3}/)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property1").isEqualTo("a")""" &&
|
||||
it.method()== """.field("['property1']").isEqualTo("a")""" &&
|
||||
it.jsonPath() == """\$[?(@.property1 == 'a')]"""
|
||||
}
|
||||
and:
|
||||
@@ -594,7 +594,7 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(json)
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.field("property2").matches("\\\\d+")""" &&
|
||||
it.method()== """.field("['property2']").matches("\\\\d+")""" &&
|
||||
it.jsonPath() == """\$[?(@.property2 =~ /\\d+/)]"""
|
||||
}
|
||||
and:
|
||||
@@ -613,11 +613,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(json)
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("errors").contains("property").isEqualTo("bank_account_number")""" &&
|
||||
it.method()== """.array("['errors']").contains("['property']").isEqualTo("bank_account_number")""" &&
|
||||
it.jsonPath() == """\$.errors[*][?(@.property == 'bank_account_number')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("errors").contains("message").isEqualTo("incorrect_format")""" &&
|
||||
it.method()== """.array("['errors']").contains("['message']").isEqualTo("incorrect_format")""" &&
|
||||
it.jsonPath() == """\$.errors[*][?(@.message == 'incorrect_format')]"""
|
||||
}
|
||||
and:
|
||||
@@ -638,15 +638,15 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(json)
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("errors").contains("property").isEqualTo("bank_account_number")""" &&
|
||||
it.method()== """.array("['errors']").contains("['property']").isEqualTo("bank_account_number")""" &&
|
||||
it.jsonPath() == """\$.errors[*][?(@.property == 'bank_account_number')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("errors").contains("message").isEqualTo("incorrect_format")""" &&
|
||||
it.method()== """.array("['errors']").contains("['message']").isEqualTo("incorrect_format")""" &&
|
||||
it.jsonPath() == """\$.errors[*][?(@.message == 'incorrect_format')]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array("errors").hasSize(1)""" &&
|
||||
it.method()== """.array("['errors']").hasSize(1)""" &&
|
||||
it.jsonPath() == """\$.errors[*]"""
|
||||
}
|
||||
and:
|
||||
@@ -674,19 +674,19 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").array().arrayField().isEqualTo(38.995548)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").array().arrayField().isEqualTo(38.995548)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*][*][?(@ == 38.995548)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").array().arrayField().isEqualTo(-77.119759)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").array().arrayField().isEqualTo(-77.119759)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*][*][?(@ == -77.119759)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").array().arrayField().isEqualTo(-76.909393)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").array().arrayField().isEqualTo(-76.909393)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*][*][?(@ == -76.909393)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").array().arrayField().isEqualTo(38.791645)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").array().arrayField().isEqualTo(38.791645)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*][*][?(@ == 38.791645)]"""
|
||||
}
|
||||
and:
|
||||
@@ -720,19 +720,19 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
JsonPaths pathAndValues = new JsonToJsonPathsConverter().transformToJsonPathWithTestsSideValues(new JsonSlurper().parseText(json))
|
||||
then:
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").array().arrayField().isEqualTo(38.995548)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").array().arrayField().isEqualTo(38.995548)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*][*][?(@ == 38.995548)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").array().arrayField().isEqualTo(-77.119759)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").array().arrayField().isEqualTo(-77.119759)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*][*][?(@ == -77.119759)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").array().arrayField().isEqualTo(-76.909393)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").array().arrayField().isEqualTo(-76.909393)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*][*][?(@ == -76.909393)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").array().arrayField().isEqualTo(38.791645)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").array().arrayField().isEqualTo(38.791645)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*][*][?(@ == 38.791645)]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
@@ -740,11 +740,11 @@ class JsonToJsonPathsConverterSpec extends Specification {
|
||||
it.jsonPath() == """\$"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").array().hasSize(2)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").array().hasSize(2)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*][*]"""
|
||||
}
|
||||
pathAndValues.find {
|
||||
it.method()== """.array().field("place").field("bounding_box").array("coordinates").hasSize(1)""" &&
|
||||
it.method()== """.array().field("['place']").field("['bounding_box']").array("['coordinates']").hasSize(1)""" &&
|
||||
it.jsonPath() == """\$[*].place.bounding_box.coordinates[*]"""
|
||||
}
|
||||
and:
|
||||
|
||||
Reference in New Issue
Block a user