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
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
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
with this change we're providing support for Pact based contracts. No longer do you have to set up your contracts using the Groovy DSL. In the same way as with the DSL you can use the Pact contracts to generate tests and the stubs on the producer side.
fixes#96
Stub / Test Matchers (#186)
Without this change we're forcing users to embed their dynamic properties inside the body. For some this is natural and acceptable, but especially for the users coming from the Pact world this sounds bizarre. Also some other people have a problem with remembering who the consumer / producer is etc.
With this change we're introducing the stubMatchers and testMatchers section. Thanks to this one can separate the body from defining the dynamic properties. Especially for Pact users this is more natural. Speaking of which this is a prerequisite for #96fixes#185
Without this change we're forcing users to embed their dynamic properties inside the body. For some this is natural and acceptable, but especially for the users coming from the Pact world this sounds bizarre. Also some other people have a problem with remembering who the consumer / producer is etc.
With this change we're introducing the stubMatchers and testMatchers section. Thanks to this one can separate the body from defining the dynamic properties. Especially for Pact users this is more natural. Speaking of which this is a prerequisite for #96fixes#185
without this change a toString was executed on an optional property due to a missing method that parses those kind of props.
with this change we've added a missing method and also we've made optional property toString return the proper pattern
fixes#173
without this change a toString was executed on an optional property due to a missing method that parses those kind of props.
with this change we've added a missing method and also we've made optional property toString return the proper pattern
fixes#173
with this change to DSL we're adding some helper methods and DSL simplifications
- c(...) / p(...) - for consumer / producer
- for regex - e.g. $(anyUrl()) - insead of $(consumer(regex(url()))
- Added helper headers and media types
- Added helper http methods
fixes#149
without this change the only way to ignore a contract was to provide it in the plugin's config
with this change you can also set it on the contract itself.
fixes#30
before this change the support for Stub Runner Boot with Service Discovery was pretty useless since Stub Runner stubbed service discovery. That makes a lot of sense in unit / integration tests but not when you want to do some version of end to end tests.
With this change you can pass a property to enable automated registration of stubs in Service Discovery.
Technical changes:
* Added Zookeeper registration
* Added Eureka registration
* Added Consul registration
* Added checkstyle plugin - fixed part of exceptions