without this change the only criterion for matching of requests was URL / headers / content. The method check was missing
with this change we verify if the HTTP method matches too
fixes#163
without this change the explicit mode is broken and context path scenario can't be tested
with this change you can provide the EXPLICIT mode with which you can set the RestAssured to send real requests. That way you can set up your application to listen on a socket and have the context path setup. The contracts need to include the context path too since in real world you'll send a request to a URL that contains a context path element.
fixes#179#117
without this change when we work with the repo with common contracts then in the logs we can see that a lot of unnecessary files are processed. Those files are related to the fact that `target` / `build` folders are created and reside in the path in which we're searching for contracts. Due to this we have duplicates in terms of converting files.
with this change we add the `excludeBuildFolders` property that is by default turned off. If you enable it in the `pom.xml` that is used by the consumers to install stubs locally then the target folder gets ignored.
fixes#167
without this change for some reason we're using .get() to address an entry in the list via a index
with this change we're doing it in the proper JSON path format which is `$[index]`
fixes#85
without this change if someone used the Spring Cloud BOM one could have some dependency related issues coming from exclusions of WireMock dependencies in SPring CLoud COntract
with this change we're informing the user about this
fixes#146
without this change we're escapng an already escaped quotes in a regex
with this change we're doing a hack to unescape a double escaped quote
fixes#169
- fixed the way that text/plain is dealt with
- added compilation checks for Groovy / Java
- added compilation check for JaxRs
This is an important commit since it's compiling the generated code to ensure that the tests we're generating
are compilable. It turned out that a couple of regex for Groovy were not properly set. With this change
if we produce code that doesn't compile
fixes#177#172
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 contracts are taken from a wrong directory and they tend to be always up to date in a multi module project
with this change we check the contract sources from the current project. also we've removed the up to date check
fixes#159
the biggest problem was related with the scenario in which a jar with shared contracts is downloaded
with this change the output JAR structure is proper
fixes#156
When using contract plugins together with a shared repo with contracts we end up with creating contract tests for all the contracts. Stubs are created properly but tests generation ignores the path pattern.
With this change we fix the way tests are generated
fixes#155
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 it's impossible to execute any custom method to assert a response for a body that is just text
with this change you can do it
fixes#150
Never got to the bottom of this, but the test failure with the
dropped connection (EOF on socket) seems to go away if we use
the Apache client instead of the JDK.
without this change you can't control what should be excluded from your folder in the output stubs jar. That way when having a common repo with contracts you had the whole target put into stubs jar
with this change you can set e.g. `**/target/**/*.*` to exclude anything from the target folder
fixes#145
The problem is that it is a Spring Boot app (really tiny one), so
it binds to server.* in the environment, if you try to use
the stock ServerProperties. We only need a subset of the features
so it's actually relatively easy to wrap it and use a delegate.
without this change you have to pass `contractRepositoryUrl` for the contract jar to be downloaded
with this change you can pass the `contractsWorkOffline` flag and the local maven repo will be analyzed
fixes#140
without this change for convention class names we haven't escaped illegal chars
with this change the illegal chars are escaped and no compilation issues occur
fixes#137