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
without this change it's impossible to use Rest Assured 3.0 with Spring Cloud Contract. That's because we are adding Rest Assured 2.0 imports.
with this change we detect Rest Assured version. If 3.0 is available on the classpath we change the imports
fixes#266
without this change we're not referrencing arrays properly in json path. For some reason (that I don't remember) we had a deferrencing via 'get' in the code. 'get' is not present in JSON Path. That's why it was failing
with this change we're deferrencing arrays via `.` or index
fixes#251
without this change some regex contained invalid characters. Even though the code compiles the regular expressions passed to json assert are invalid.
with this change that gets fixed and tests are added. We're now checking if the code can be executed and not only compiled. We also check if WireMock fed with the stubs generated from these cases works fine and not only do we check if stub mappings are properly generated.
fixes#250
without this change it's impossible to change the generated file extension
with this change you can do it. E.g. provide your own test generator that will store files in `.php` file
fixes#253
Added:
- iso8601WithOffset which handles iso8601 date time with timezone date validation
- nonBlankString which handles string that aren't "" and also just whitespace
- nonEmptyString which handles "" strings
- anyOf(String...) which handles enumerated style attributes for validation
fixes#245
changed the name of iso8601DatetimeWithTimezone to anyIso8601WithOffset per code review suggestions
The best situation is to provide fixed values but sometimes you need to reference a request in your response. In order to do this you can profit from the fromRequest() method that allows you to reference a bunch of elements from the HTTP request. You can use the following options:
- `fromRequest().url()` - return the request URL
- `fromRequest().query(String key)` - return the first query parameter with a given name
- `fromRequest().query(String key, int index)` - return the nth query parameter with a given name
- `fromRequest().header(String key)` - return the first header with a given name
- `fromRequest().header(String key, int index)` - return the nth header with a given name
- `fromRequest().body()` - return the full request body
- `fromRequest().body(String jsonPath)` - return the element from the request that matches the JSON Path
fixes#237
without this change we are not doing a deep copy of a collection thus we're accidentaly removing the original value
with this change we ensure that a deep copy is made
fixes#229
when one provides .. in the path it's actually a collection. So if regex is there now we support it. If it's size check - exception will be thrown
fixes#217
with this change we no longer call the integer assertions on the size. We have our own custom size assertions.
Also we can do a flattened size assertion. If in the jsonpath there is [*] we can finally check the whole size and assert it properly
related to #217
we're hiding the details related to assertions in our new abstraction over assertj assertions. That way we'll be able to add new methods in an easy way. There will be no need to create annonymous conditions etc.
without this change it's impossible to assert with response matchers all elements of an array
with this change we're using AssertJs conditions in case the pattern contains [*]
fixes#217