without this change even though we want a remote repo to be used for the artifact we return a cached instance
with this change we're throwing an exception if we can't download the artifact and we found one cached in the local repo
fixes#312
without this change we're not mocking all necessary methods in connection factory. When someone used the rabbittemplate, accidentaly we mocked the proper method to return a mocked connection factory. When rabbitmq started using different version of the `newConnection` in all places where rabbittemplate was used the real connection factory was created.
with this change we're mocking all `newConnection` methods to return a mocked connection
fixes#303
without this change you can by mistake use the http headers in a messaging headers which will fail to work
with this change we're adding the messagingContentType() method that allows to properly set the content type
fixes#296
With contract like this
```
// output message of the contract
outputMessage {
// destination to which the output message will be sent
sentTo 'verifications'
// the body of the output message
body(
eligible: true
)
headers {
header("contentType", applicationJsonUtf8())
}
}
```
the generated test produces
```
ContractVerifierMessage response = contractVerifierMessaging.receive("verifications");
assertThat(response.getHeader("contentType")).isEqualTo("application/json;charset=UTF-8");
```
The headers in the response is a MimeType not a String so the equality check fails.
fixes#297
There are cases in which 2 consumers of the same endpoint want to have 2 different responses. Without this change we don't support it. We don't support that consumers may overlap with their contracts. The outcome of such overlapping is that the first matching stub will be registered in HTTP server stub and the other will be ignored.
With this change we're allowing such a thing to happen. Each consumer can set the `stubrunner.stubs-per-consumer` flag and the `spring.application.name` or `stubrunner.consumer-name` flag will be taken into consideration. If the consumer's name is present in the path of a stub / contract then its mapping / messaging contract will be reused in tests. If not then it will get ignored
fixes#224