Commit Graph

57 Commits

Author SHA1 Message Date
Marcin Grzejszczak
b142195d09 Merge branch '1.0.x' 2017-04-14 09:59:31 +02:00
Marcin Grzejszczak
5843234fa1 Fixed invalid escaping of characters for regex
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
2017-04-14 09:40:15 +02:00
Marcin Grzejszczak
4d895da4fb Merge branch '1.0.x' 2017-03-20 18:04:19 +01:00
Peter Frank
ebf09dfda3 gh-245: Created new DslProperty creation methods (#247)
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
2017-03-20 18:02:40 +01:00
Marcin Grzejszczak
2cae0c620f Merge branch '1.0.x' 2017-03-02 10:36:38 +01:00
Marcin Grzejszczak
59bde4b640 Made headers private 2017-03-02 10:36:30 +01:00
Marcin Grzejszczak
d6f2227f89 Referencing request from response (#238)
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
2017-03-02 10:14:10 +01:00
Marcin Grzejszczak
0048ebd756 Merge branch '1.0.x' 2017-02-23 17:37:40 +01:00
Marcin Grzejszczak
7e19f9fceb Adds option to generate contracts from RestDocs
with this change we're giving an option to not only generate stubs but also generate contracts from the RestDocs test

    fixes #14
2017-02-23 17:37:24 +01:00
Marcin Grzejszczak
5d72fc2071 Merge branch '1.0.x' 2017-02-22 13:38:26 +01:00
Marcin Grzejszczak
19120f55fc Fixed the way we clone bodies in response
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
2017-02-22 13:30:59 +01:00
Marcin Grzejszczak
c78e5ebfd5 Merge branch '1.0.x' 2017-02-14 14:28:13 +01:00
Marcin Grzejszczak
99d393b8e3 Fixed the way we work with body that is just a number
fixes #226
2017-02-14 14:04:39 +01:00
Marcin Grzejszczak
a1eb124e0c Updated docs 2017-02-10 13:40:49 +01:00
Marcin Grzejszczak
47102d722b Added the byCommand matcher
with this change the users can pass their own custom methods for the given matcher

hopefully fixes #217
2017-02-10 13:30:09 +01:00
Marcin Grzejszczak
b94a074e41 Merge branch '1.0.x' 2017-02-08 11:42:12 +01:00
Marcin Grzejszczak
ab7fe13aac Adding an option to validate children nodes in an array (#219)
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
2017-02-08 11:41:59 +01:00
Marcin Grzejszczak
4d82abc52d Fixed missing support for execute method in URL
without this change the execute method in URL is quoted and treated as string
with this change we're supporting it OOB

fixes #11
2017-01-17 13:46:26 +01:00
Marcin Grzejszczak
f59107fd62 Merge branch '1.0.x' 2017-01-16 13:45:59 +01:00
Marcin Grzejszczak
8d23d934c9 Bumped copyrights 2017-01-16 12:40:34 +01:00
Marcin Grzejszczak
22a5e44471 Pact Contract (#188)
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
2017-01-13 18:06:32 +01:00
Marcin Grzejszczak
6ee7f0cf0d Merge branch '1.0.x' 2017-01-11 19:13:59 +01:00
Marcin Grzejszczak
2bd95b6edb Changed byValue to byEquality 2017-01-11 19:13:49 +01:00
Marcin Grzejszczak
f605237136 Merge branch '1.0.x' 2017-01-11 14:32:54 +01:00
Marcin Grzejszczak
76966a985c Added equality check to matchers 2017-01-11 14:16:53 +01:00
Marcin Grzejszczak
c92e57bbdf Merge branch '1.0.x' 2017-01-10 18:47:53 +01:00
Marcin Grzejszczak
9ccc5bc0fd Polish 2017-01-10 18:45:42 +01:00
Marcin Grzejszczak
9543434ef7 Merge branch '1.0.x'
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 #96

fixes #185
2017-01-10 17:21:38 +01:00
Marcin Grzejszczak
27bf2af8fd 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 #96

fixes #185
2017-01-10 16:47:10 +01:00
Marcin Grzejszczak
b404369341 Added isoDate, isoTime, isoDateTime
fixes #183
2017-01-03 18:14:10 +01:00
Marcin Grzejszczak
150f7fdc43 Added isoDate, isoTime, isoDateTime
fixes #183
2017-01-03 18:13:06 +01:00
Marcin Grzejszczak
9f71e50349 Fixed invalid OptionalProperty conversion
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
2016-12-21 16:14:49 +01:00
Marcin Grzejszczak
73d4d652ff Fixed invalid OptionalProperty conversion
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
2016-12-21 16:14:30 +01:00
Marcin Grzejszczak
b098e300e5 Merge branch '1.0.x' 2016-12-14 22:02:01 +01:00
Marcin Grzejszczak
f9961d17f6 Fixed missing regex value generation
without this change the autogenerated tests were wrong and contained a 'cursor' value
with this change it got fixed

fixes #168
2016-12-14 21:58:01 +01:00
Marcin Grzejszczak
3e90c1ab9d Polish 2016-12-07 22:24:34 +01:00
Marcin Grzejszczak
39bef2ce08 Fixed equals and hashcode 2016-12-07 22:24:34 +01:00
Marcin Grzejszczak
a328130418 WireMock done 2016-12-07 22:24:34 +01:00
Marcin Grzejszczak
f148c5b8bf Using factories 2016-12-07 22:24:34 +01:00
Marcin Grzejszczak
d63a557a29 Added Contract converter + Yaml example 2016-12-07 22:24:34 +01:00
Marcin Grzejszczak
c067774eee Fixed the invalid regex escape
fixes #162
2016-12-07 16:29:11 +01:00
Marcin Grzejszczak
b1175ff9bd Simplification of the dsl (#151)
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
2016-11-18 15:38:35 +01:00
Andrew Fitzgerald
74ea3fd27d Allow MethodBodyBuilder to evaluate ExecutionProperty objects (#114) 2016-10-18 08:20:17 +02:00
Andrew Fitzgerald
8d8cdfe89b Add UUID regex compatible with java.util.UUID. (#115) 2016-10-18 08:17:44 +02:00
Marcin Grzejszczak
8e68dcedd4 Problem with auto-generated values from regex inside the respose body
added missing `$()` method for consumer and producer side only

fixes #94
2016-10-04 15:12:55 +02:00
Marcin Grzejszczak
b598518281 Added ignored to contracts
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
2016-09-26 14:32:01 +02:00
Marcin Grzejszczak
f09b96a524 Added missing delegates to AST to Contract 2016-09-20 08:35:21 +02:00
Marcin Grzejszczak
bfc2172d66 Applied checkstyle rules 2016-08-29 12:04:21 +02:00
Marcin Grzejszczak
64d6d3ef6c Automatic stub registration (#64)
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
2016-08-26 16:09:16 +02:00
Marcin Grzejszczak
125b16edf6 Added missing $ methods
with the feature of passing only one side of the communication we've forgotten to add the $ version

fixes #51
2016-08-22 15:38:27 +02:00