Add back the ContractVerifierMessage in an internal package
It's easier to write generated tests with this abstraction, but it doesn't have to be visible to users.
This commit is contained in:
@@ -24,9 +24,9 @@ import org.junit.BeforeClass
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootContextLoader
|
||||
import org.springframework.cloud.contract.spec.Contract
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange
|
||||
import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper;
|
||||
import org.springframework.test.annotation.DirtiesContext
|
||||
import org.springframework.test.context.ContextConfiguration
|
||||
|
||||
@@ -46,7 +46,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion
|
||||
public class CamelMessagingApplicationSpec extends Specification {
|
||||
|
||||
// ALL CASES
|
||||
@Inject ContractVerifierMessaging<Message> contractVerifierMessaging
|
||||
@Inject ContractVerifierMessageExchange<Message> contractVerifierMessaging
|
||||
ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper()
|
||||
|
||||
@BeforeClass
|
||||
@@ -73,7 +73,7 @@ public class CamelMessagingApplicationSpec extends Specification {
|
||||
when:
|
||||
bookReturnedTriggered()
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('activemq:output')
|
||||
def response = contractVerifierMessaging.receive('activemq:output')
|
||||
response.headers.get('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.body))
|
||||
@@ -112,7 +112,7 @@ public class CamelMessagingApplicationSpec extends Specification {
|
||||
contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']),
|
||||
[sample: 'header'], 'jms:input')
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('jms:output')
|
||||
def response = contractVerifierMessaging.receive('jms:output')
|
||||
response.headers.get('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.body))
|
||||
|
||||
@@ -21,9 +21,9 @@ import javax.inject.Inject
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootContextLoader
|
||||
import org.springframework.cloud.contract.spec.Contract
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange
|
||||
import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper;
|
||||
import org.springframework.messaging.Message
|
||||
import org.springframework.test.annotation.DirtiesContext
|
||||
import org.springframework.test.context.ContextConfiguration
|
||||
@@ -40,7 +40,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion
|
||||
public class IntegrationMessagingApplicationSpec extends Specification {
|
||||
|
||||
// ALL CASES
|
||||
@Inject ContractVerifierMessaging<Message<?>> contractVerifierMessaging
|
||||
@Inject ContractVerifierMessageExchange<Message<?>> contractVerifierMessaging
|
||||
ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper()
|
||||
|
||||
def "should work for triggered based messaging"() {
|
||||
@@ -73,7 +73,7 @@ public class IntegrationMessagingApplicationSpec extends Specification {
|
||||
when:
|
||||
bookReturnedTriggered()
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('output')
|
||||
def response = contractVerifierMessaging.receive('output')
|
||||
response.headers.get('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload))
|
||||
@@ -118,7 +118,7 @@ public class IntegrationMessagingApplicationSpec extends Specification {
|
||||
contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']),
|
||||
[sample: 'header'], 'input')
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('output')
|
||||
def response = contractVerifierMessaging.receive('output')
|
||||
response.headers.get('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload))
|
||||
|
||||
@@ -22,9 +22,9 @@ import org.junit.BeforeClass
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.context.SpringBootContextLoader
|
||||
import org.springframework.cloud.contract.spec.Contract
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange
|
||||
import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.test.annotation.DirtiesContext
|
||||
import org.springframework.test.context.ContextConfiguration
|
||||
@@ -45,7 +45,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion
|
||||
public class SpringApplicationSpec extends Specification {
|
||||
|
||||
// ALL CASES
|
||||
@Inject ContractVerifierMessaging<Message<?>> contractVerifierMessaging
|
||||
@Inject ContractVerifierMessageExchange<Message<?>> contractVerifierMessaging
|
||||
ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper()
|
||||
|
||||
@BeforeClass
|
||||
@@ -72,7 +72,7 @@ public class SpringApplicationSpec extends Specification {
|
||||
when:
|
||||
bookReturnedTriggered()
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('output')
|
||||
def response = contractVerifierMessaging.receive('output')
|
||||
response.headers.get('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload))
|
||||
@@ -113,7 +113,7 @@ public class SpringApplicationSpec extends Specification {
|
||||
when:
|
||||
contractVerifierMessaging.send(inputMessage, 'input')
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('output')
|
||||
def response = contractVerifierMessaging.receive('output')
|
||||
response.headers.get('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload))
|
||||
|
||||
@@ -22,9 +22,9 @@ import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.test.IntegrationTest
|
||||
import org.springframework.boot.test.context.SpringBootContextLoader
|
||||
import org.springframework.cloud.contract.spec.Contract
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange
|
||||
import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.test.annotation.DirtiesContext
|
||||
import org.springframework.test.context.ContextConfiguration
|
||||
@@ -45,7 +45,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion
|
||||
public class StreamMessagingApplicationSpec extends Specification {
|
||||
|
||||
// ALL CASES
|
||||
@Inject ContractVerifierMessaging<Message<?>> contractVerifierMessaging
|
||||
@Inject ContractVerifierMessageExchange<Message<?>> contractVerifierMessaging
|
||||
ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper()
|
||||
|
||||
def "should work for triggered based messaging"() {
|
||||
@@ -67,7 +67,7 @@ public class StreamMessagingApplicationSpec extends Specification {
|
||||
when:
|
||||
bookReturnedTriggered()
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('output')
|
||||
def response = contractVerifierMessaging.receive('output')
|
||||
response.headers.get('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload))
|
||||
@@ -105,7 +105,7 @@ public class StreamMessagingApplicationSpec extends Specification {
|
||||
contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']),
|
||||
[sample: 'header'], 'input')
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('output')
|
||||
def response = contractVerifierMessaging.receive('output')
|
||||
response.headers.get('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload))
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.apache.camel.Exchange;
|
||||
import org.apache.camel.Predicate;
|
||||
import org.springframework.cloud.contract.spec.Contract;
|
||||
import org.springframework.cloud.contract.spec.internal.Header;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper;
|
||||
import org.springframework.cloud.contract.verifier.util.JsonPaths;
|
||||
import org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter;
|
||||
import org.springframework.cloud.contract.verifier.util.MethodBufferingJsonVerifiable;
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
import org.springframework.cloud.contract.spec.Contract;
|
||||
import org.springframework.cloud.contract.spec.internal.Header;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper;
|
||||
import org.springframework.cloud.contract.verifier.util.JsonPaths;
|
||||
import org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter;
|
||||
import org.springframework.cloud.contract.verifier.util.MethodBufferingJsonVerifiable;
|
||||
|
||||
@@ -52,7 +52,7 @@ class IntegrationStubRunnerSpec extends Specification {
|
||||
|
||||
def setup() {
|
||||
// ensure that message were taken from the queue
|
||||
messaging.receiveMessage('outputTest', 100, TimeUnit.MILLISECONDS)
|
||||
messaging.receive('outputTest', 100, TimeUnit.MILLISECONDS)
|
||||
}
|
||||
|
||||
def 'should download the stub and register a route for it'() {
|
||||
@@ -62,7 +62,7 @@ class IntegrationStubRunnerSpec extends Specification {
|
||||
// end::client_send[]
|
||||
then:
|
||||
// tag::client_receive[]
|
||||
Message<?> receivedMessage = messaging.receiveMessage('outputTest')
|
||||
Message<?> receivedMessage = messaging.receive('outputTest')
|
||||
// end::client_receive[]
|
||||
and:
|
||||
// tag::client_receive_message[]
|
||||
@@ -79,7 +79,7 @@ class IntegrationStubRunnerSpec extends Specification {
|
||||
// end::client_trigger[]
|
||||
then:
|
||||
// tag::client_trigger_receive[]
|
||||
Message<?> receivedMessage = messaging.receiveMessage('outputTest')
|
||||
Message<?> receivedMessage = messaging.receive('outputTest')
|
||||
// end::client_trigger_receive[]
|
||||
and:
|
||||
// tag::client_trigger_message[]
|
||||
@@ -95,7 +95,7 @@ class IntegrationStubRunnerSpec extends Specification {
|
||||
stubFinder.trigger('org.springframework.cloud.contract.verifier.stubs:integrationService', 'return_book_1')
|
||||
// end::trigger_group_artifact[]
|
||||
then:
|
||||
Message<?> receivedMessage = messaging.receiveMessage('outputTest')
|
||||
Message<?> receivedMessage = messaging.receive('outputTest')
|
||||
and:
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
@@ -108,7 +108,7 @@ class IntegrationStubRunnerSpec extends Specification {
|
||||
stubFinder.trigger('integrationService', 'return_book_1')
|
||||
// end::trigger_artifact[]
|
||||
then:
|
||||
Message<?> receivedMessage = messaging.receiveMessage('outputTest')
|
||||
Message<?> receivedMessage = messaging.receive('outputTest')
|
||||
and:
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
@@ -135,7 +135,7 @@ class IntegrationStubRunnerSpec extends Specification {
|
||||
stubFinder.trigger()
|
||||
// end::trigger_all[]
|
||||
then:
|
||||
Message<?> receivedMessage = messaging.receiveMessage('outputTest')
|
||||
Message<?> receivedMessage = messaging.receive('outputTest')
|
||||
and:
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
@@ -155,7 +155,7 @@ class IntegrationStubRunnerSpec extends Specification {
|
||||
when:
|
||||
messaging.send(new BookReturned('not_matching'), [wrong: 'header_value'], 'input')
|
||||
then:
|
||||
Message<?> receivedMessage = messaging.receiveMessage('outputTest', 100, TimeUnit.MILLISECONDS)
|
||||
Message<?> receivedMessage = messaging.receive('outputTest', 100, TimeUnit.MILLISECONDS)
|
||||
and:
|
||||
receivedMessage == null
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
import org.springframework.cloud.contract.spec.Contract;
|
||||
import org.springframework.cloud.contract.spec.internal.Header;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper;
|
||||
import org.springframework.cloud.contract.verifier.util.JsonPaths;
|
||||
import org.springframework.cloud.contract.verifier.util.JsonToJsonPathsConverter;
|
||||
import org.springframework.cloud.contract.verifier.util.MethodBufferingJsonVerifiable;
|
||||
|
||||
@@ -23,11 +23,13 @@ import java.util.concurrent.TimeUnit
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
|
||||
import org.springframework.boot.test.IntegrationTest;
|
||||
import org.springframework.boot.test.context.SpringBootContextLoader
|
||||
import org.springframework.cloud.contract.spec.Contract
|
||||
import org.springframework.cloud.contract.stubrunner.StubFinder
|
||||
import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange
|
||||
import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging;
|
||||
import org.springframework.cloud.stream.annotation.EnableBinding
|
||||
import org.springframework.cloud.stream.messaging.Sink
|
||||
import org.springframework.cloud.stream.messaging.Source
|
||||
@@ -41,125 +43,123 @@ import spock.lang.Specification
|
||||
/**
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
@Configuration
|
||||
@ComponentScan
|
||||
@EnableAutoConfiguration
|
||||
@ContextConfiguration(classes = StreamStubRunnerSpec, loader = SpringBootContextLoader)
|
||||
@EnableBinding([Sink, Source])
|
||||
@ContextConfiguration(classes = Config, loader = SpringBootContextLoader)
|
||||
@IntegrationTest("debug=true")
|
||||
@AutoConfigureStubRunner
|
||||
@AutoConfigureContractVerifierMessaging
|
||||
class StreamStubRunnerSpec extends Specification {
|
||||
|
||||
@Autowired StubFinder stubFinder
|
||||
@Autowired ContractVerifierMessaging<Message<?>> messaging
|
||||
@Autowired ContractVerifierMessageExchange<Message<?>> messaging
|
||||
|
||||
def setup() {
|
||||
// ensure that message were taken from the queue
|
||||
messaging.receiveMessage('returnBook', 100, TimeUnit.MILLISECONDS)
|
||||
messaging.receive('returnBook', 100, TimeUnit.MILLISECONDS)
|
||||
}
|
||||
|
||||
def 'should download the stub and register a route for it'() {
|
||||
when:
|
||||
// tag::client_send[]
|
||||
messaging.send(new BookReturned('foo'), [sample: 'header'], 'bookStorage')
|
||||
messaging.send(new BookReturned('foo'), [sample: 'header'], 'bookStorage')
|
||||
// end::client_send[]
|
||||
then:
|
||||
// tag::client_receive[]
|
||||
Message<?> receivedMessage = messaging.receiveMessage('returnBook')
|
||||
Message<?> receivedMessage = messaging.receive('returnBook')
|
||||
// end::client_receive[]
|
||||
and:
|
||||
// tag::client_receive_message[]
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
// end::client_receive_message[]
|
||||
}
|
||||
|
||||
def 'should trigger a message by label'() {
|
||||
when:
|
||||
// tag::client_trigger[]
|
||||
stubFinder.trigger('return_book_1')
|
||||
stubFinder.trigger('return_book_1')
|
||||
// end::client_trigger[]
|
||||
then:
|
||||
// tag::client_trigger_receive[]
|
||||
Message<?> receivedMessage = messaging.receiveMessage('returnBook')
|
||||
Message<?> receivedMessage = messaging.receive('returnBook')
|
||||
// end::client_trigger_receive[]
|
||||
and:
|
||||
// tag::client_trigger_message[]
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
// end::client_trigger_message[]
|
||||
}
|
||||
|
||||
def 'should trigger a label for the existing groupId:artifactId'() {
|
||||
when:
|
||||
// tag::trigger_group_artifact[]
|
||||
stubFinder.trigger('org.springframework.cloud.contract.verifier.stubs:streamService', 'return_book_1')
|
||||
stubFinder.trigger('org.springframework.cloud.contract.verifier.stubs:streamService', 'return_book_1')
|
||||
// end::trigger_group_artifact[]
|
||||
then:
|
||||
Message<?> receivedMessage = messaging.receiveMessage('returnBook')
|
||||
Message<?> receivedMessage = messaging.receive('returnBook')
|
||||
and:
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
}
|
||||
|
||||
def 'should trigger a label for the existing artifactId'() {
|
||||
when:
|
||||
// tag::trigger_artifact[]
|
||||
stubFinder.trigger('streamService', 'return_book_1')
|
||||
stubFinder.trigger('streamService', 'return_book_1')
|
||||
// end::trigger_artifact[]
|
||||
then:
|
||||
Message<?> receivedMessage = messaging.receiveMessage('returnBook')
|
||||
Message<?> receivedMessage = messaging.receive('returnBook')
|
||||
and:
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
}
|
||||
|
||||
def 'should throw exception when missing label is passed'() {
|
||||
when:
|
||||
stubFinder.trigger('missing label')
|
||||
stubFinder.trigger('missing label')
|
||||
then:
|
||||
thrown(IllegalArgumentException)
|
||||
thrown(IllegalArgumentException)
|
||||
}
|
||||
|
||||
def 'should throw exception when missing label and artifactid is passed'() {
|
||||
when:
|
||||
stubFinder.trigger('some:service', 'return_book_1')
|
||||
stubFinder.trigger('some:service', 'return_book_1')
|
||||
then:
|
||||
thrown(IllegalArgumentException)
|
||||
thrown(IllegalArgumentException)
|
||||
}
|
||||
|
||||
def 'should trigger messages by running all triggers'() {
|
||||
when:
|
||||
// tag::trigger_all[]
|
||||
stubFinder.trigger()
|
||||
stubFinder.trigger()
|
||||
// end::trigger_all[]
|
||||
then:
|
||||
Message<?> receivedMessage = messaging.receiveMessage('returnBook')
|
||||
Message<?> receivedMessage = messaging.receive('returnBook')
|
||||
and:
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
receivedMessage != null
|
||||
assertJsons(receivedMessage.payload)
|
||||
receivedMessage.headers.get('BOOK-NAME') == 'foo'
|
||||
}
|
||||
|
||||
def 'should trigger a label with no output message'() {
|
||||
when:
|
||||
// tag::trigger_no_output[]
|
||||
messaging.send(new BookReturned('foo'), [sample: 'header'], 'delete')
|
||||
messaging.send(new BookReturned('foo'), [sample: 'header'], 'delete')
|
||||
// end::trigger_no_output[]
|
||||
then:
|
||||
noExceptionThrown()
|
||||
noExceptionThrown()
|
||||
}
|
||||
|
||||
def 'should not trigger a message that does not match input'() {
|
||||
when:
|
||||
messaging.send(new BookReturned('not_matching'), [wrong: 'header_value'], 'bookStorage')
|
||||
messaging.send(new BookReturned('not_matching'), [wrong: 'header_value'], 'bookStorage')
|
||||
then:
|
||||
Message<?> receivedMessage = messaging.receiveMessage('returnBook', 100, TimeUnit.MILLISECONDS)
|
||||
Message<?> receivedMessage = messaging.receive('returnBook', 100, TimeUnit.MILLISECONDS)
|
||||
and:
|
||||
receivedMessage == null
|
||||
receivedMessage == null
|
||||
}
|
||||
|
||||
private boolean assertJsons(Object payload) {
|
||||
@@ -173,15 +173,11 @@ class StreamStubRunnerSpec extends Specification {
|
||||
// tag::sample_dsl[]
|
||||
Contract.make {
|
||||
label 'return_book_1'
|
||||
input {
|
||||
triggeredBy('bookReturnedTriggered()')
|
||||
}
|
||||
input { triggeredBy('bookReturnedTriggered()') }
|
||||
outputMessage {
|
||||
sentTo('returnBook')
|
||||
body('''{ "bookName" : "foo" }''')
|
||||
headers {
|
||||
header('BOOK-NAME', 'foo')
|
||||
}
|
||||
headers { header('BOOK-NAME', 'foo') }
|
||||
}
|
||||
}
|
||||
// end::sample_dsl[]
|
||||
@@ -193,39 +189,39 @@ class StreamStubRunnerSpec extends Specification {
|
||||
input {
|
||||
messageFrom('bookStorage')
|
||||
messageBody([
|
||||
bookName: 'foo'
|
||||
bookName: 'foo'
|
||||
])
|
||||
messageHeaders {
|
||||
header('sample', 'header')
|
||||
}
|
||||
messageHeaders { header('sample', 'header') }
|
||||
}
|
||||
outputMessage {
|
||||
sentTo('returnBook')
|
||||
body([
|
||||
bookName: 'foo'
|
||||
bookName: 'foo'
|
||||
])
|
||||
headers {
|
||||
header('BOOK-NAME', 'foo')
|
||||
}
|
||||
headers { header('BOOK-NAME', 'foo') }
|
||||
}
|
||||
}
|
||||
// end::sample_dsl_2[]
|
||||
|
||||
Contract dsl3 =
|
||||
// tag::sample_dsl_3[]
|
||||
Contract.make {
|
||||
label 'delete_book'
|
||||
input {
|
||||
messageFrom('delete')
|
||||
messageBody([
|
||||
bookName: 'foo'
|
||||
])
|
||||
messageHeaders {
|
||||
header('sample', 'header')
|
||||
}
|
||||
assertThat('bookWasDeleted()')
|
||||
}
|
||||
}
|
||||
// tag::sample_dsl_3[]
|
||||
Contract.make {
|
||||
label 'delete_book'
|
||||
input {
|
||||
messageFrom('delete')
|
||||
messageBody([
|
||||
bookName: 'foo'
|
||||
])
|
||||
messageHeaders { header('sample', 'header') }
|
||||
assertThat('bookWasDeleted()')
|
||||
}
|
||||
}
|
||||
// end::sample_dsl_3[]
|
||||
|
||||
|
||||
@EnableBinding([Sink, Source])
|
||||
@Configuration
|
||||
@EnableAutoConfiguration
|
||||
protected static class Config {}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
package org.springframework.cloud.contract.stubrunner;
|
||||
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierMessaging;
|
||||
|
||||
/**
|
||||
@@ -29,13 +29,13 @@ public class BatchStubRunnerFactory {
|
||||
|
||||
private final StubRunnerOptions stubRunnerOptions;
|
||||
private final StubDownloader stubDownloader;
|
||||
private final ContractVerifierMessaging contractVerifierMessaging;
|
||||
private final ContractVerifierMessageExchange contractVerifierMessaging;
|
||||
|
||||
public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions) {
|
||||
this(stubRunnerOptions, new AetherStubDownloader(stubRunnerOptions), new NoOpContractVerifierMessaging());
|
||||
}
|
||||
|
||||
public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, ContractVerifierMessaging contractVerifierMessaging) {
|
||||
public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, ContractVerifierMessageExchange contractVerifierMessaging) {
|
||||
this(stubRunnerOptions, new AetherStubDownloader(stubRunnerOptions), contractVerifierMessaging);
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@ public class BatchStubRunnerFactory {
|
||||
this(stubRunnerOptions, stubDownloader, new NoOpContractVerifierMessaging());
|
||||
}
|
||||
|
||||
public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, StubDownloader stubDownloader, ContractVerifierMessaging contractVerifierMessaging) {
|
||||
public BatchStubRunnerFactory(StubRunnerOptions stubRunnerOptions, StubDownloader stubDownloader, ContractVerifierMessageExchange contractVerifierMessaging) {
|
||||
this.stubRunnerOptions = stubRunnerOptions;
|
||||
this.stubDownloader = stubDownloader;
|
||||
this.contractVerifierMessaging = contractVerifierMessaging;
|
||||
|
||||
@@ -23,7 +23,7 @@ import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.cloud.contract.spec.Contract;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierMessaging;
|
||||
|
||||
/**
|
||||
@@ -52,7 +52,7 @@ public class StubRunner implements StubRunning {
|
||||
|
||||
public StubRunner(StubRunnerOptions stubRunnerOptions, String repositoryPath,
|
||||
StubConfiguration stubsConfiguration,
|
||||
ContractVerifierMessaging<?> contractVerifierMessaging) {
|
||||
ContractVerifierMessageExchange<?> contractVerifierMessaging) {
|
||||
this.stubsConfiguration = stubsConfiguration;
|
||||
this.stubRunnerOptions = stubRunnerOptions;
|
||||
this.stubRepository = new StubRepository(new File(repositoryPath));
|
||||
|
||||
@@ -32,7 +32,7 @@ import org.springframework.cloud.contract.spec.internal.DslProperty;
|
||||
import org.springframework.cloud.contract.spec.internal.Headers;
|
||||
import org.springframework.cloud.contract.spec.internal.OutputMessage;
|
||||
import org.springframework.cloud.contract.stubrunner.AvailablePortScanner.PortCallback;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.util.BodyExtractor;
|
||||
|
||||
@@ -45,11 +45,11 @@ public class StubRunnerExecutor implements StubFinder {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(StubRunnerExecutor.class);
|
||||
private final AvailablePortScanner portScanner;
|
||||
private final ContractVerifierMessaging<?> contractVerifierMessaging;
|
||||
private final ContractVerifierMessageExchange<?> contractVerifierMessaging;
|
||||
private StubServer stubServer;
|
||||
|
||||
public StubRunnerExecutor(AvailablePortScanner portScanner,
|
||||
ContractVerifierMessaging<?> contractVerifierMessaging) {
|
||||
ContractVerifierMessageExchange<?> contractVerifierMessaging) {
|
||||
this.portScanner = portScanner;
|
||||
this.contractVerifierMessaging = contractVerifierMessaging;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
|
||||
/**
|
||||
* Factory of StubRunners. Basing on the options and passed collaborators downloads the
|
||||
@@ -31,11 +31,11 @@ public class StubRunnerFactory {
|
||||
|
||||
private final StubRunnerOptions stubRunnerOptions;
|
||||
private final StubDownloader stubDownloader;
|
||||
private final ContractVerifierMessaging<?> contractVerifierMessaging;
|
||||
private final ContractVerifierMessageExchange<?> contractVerifierMessaging;
|
||||
|
||||
public StubRunnerFactory(StubRunnerOptions stubRunnerOptions,
|
||||
StubDownloader stubDownloader,
|
||||
ContractVerifierMessaging<?> contractVerifierMessaging) {
|
||||
ContractVerifierMessageExchange<?> contractVerifierMessaging) {
|
||||
this.stubRunnerOptions = stubRunnerOptions;
|
||||
this.stubDownloader = stubDownloader;
|
||||
this.contractVerifierMessaging = contractVerifierMessaging;
|
||||
|
||||
@@ -18,7 +18,8 @@ package org.springframework.cloud.contract.stubrunner.server;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierMessaging;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -32,13 +33,20 @@ public class StubRunnerBackupAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public ContractVerifierMessaging<?> noOpContractVerifierMessaging() {
|
||||
public ContractVerifierMessageExchange<?> contractVerifierMessageExchange() {
|
||||
return new NoOpContractVerifierMessaging();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public ContractVerifierMessageBuilder<?> noOpContractVerifierMessageBuilder() {
|
||||
public ContractVerifierMessageBuilder<?> contractVerifierMessageBuilder() {
|
||||
return new NoOpContractVerifierMessageBuilder();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ContractVerifierMessaging<Object> contractVerifierMessaging(
|
||||
ContractVerifierMessageExchange<Object> exchange) {
|
||||
return new ContractVerifierMessaging<Object>(exchange);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ import org.springframework.cloud.contract.stubrunner.StubDownloader;
|
||||
import org.springframework.cloud.contract.stubrunner.StubRunner;
|
||||
import org.springframework.cloud.contract.stubrunner.StubRunnerOptions;
|
||||
import org.springframework.cloud.contract.stubrunner.StubRunnerOptionsBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierMessaging;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -44,7 +44,7 @@ import org.springframework.core.io.Resource;
|
||||
public class StubRunnerConfiguration {
|
||||
|
||||
@Autowired(required = false)
|
||||
private ContractVerifierMessaging<?> contractVerifierMessaging;
|
||||
private ContractVerifierMessageExchange<?> contractVerifierMessaging;
|
||||
@Autowired(required = false)
|
||||
private StubDownloader stubDownloader;
|
||||
@Autowired
|
||||
|
||||
@@ -3,6 +3,3 @@ org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner=\
|
||||
org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration,\
|
||||
org.springframework.cloud.contract.stubrunner.spring.cloud.StubRunnerSpringCloudAutoConfiguration,\
|
||||
org.springframework.cloud.contract.stubrunner.spring.cloud.ribbon.StubRunnerRibbonAutoConfiguration
|
||||
|
||||
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
org.springframework.cloud.contract.stubrunner.server.StubRunnerBackupAutoConfiguration
|
||||
|
||||
@@ -18,10 +18,13 @@ package org.springframework.cloud.contract.stubrunner
|
||||
|
||||
import groovy.json.JsonOutput
|
||||
|
||||
import java.util.concurrent.TimeUnit
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.springframework.cloud.contract.stubrunner.util.StubsParser
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging
|
||||
|
||||
import spock.lang.Specification
|
||||
|
||||
@@ -99,29 +102,29 @@ class StubRunnerExecutorSpec extends Specification {
|
||||
}
|
||||
}
|
||||
|
||||
private class AssertingContractVerifierMessaging implements ContractVerifierMessaging<Object> {
|
||||
|
||||
private class AssertingContractVerifierMessaging implements ContractVerifierMessageExchange<Object> {
|
||||
|
||||
@Override
|
||||
void send(Object message, String destination) {
|
||||
|
||||
public void send(Object message, String destination) {
|
||||
throw new UnsupportedOperationException()
|
||||
}
|
||||
|
||||
@Override
|
||||
Object receiveMessage(String destination, long timeout, TimeUnit timeUnit) {
|
||||
return null
|
||||
}
|
||||
|
||||
@Override
|
||||
Object receiveMessage(String destination) {
|
||||
return null
|
||||
}
|
||||
|
||||
@Override
|
||||
void send(Object o, Map headers, String destination) {
|
||||
assert !(JsonOutput.toJson(o).contains("serverValue"))
|
||||
public <T> void send(T payload, Map<String, Object> headers, String destination) {
|
||||
assert !(JsonOutput.toJson(payload).contains("serverValue"))
|
||||
assert headers.entrySet().every { !(it.value.toString().contains("serverValue")) }
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object receive(String destination, long timeout, TimeUnit timeUnit) {
|
||||
throw new UnsupportedOperationException()
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object receive(String destination) {
|
||||
throw new UnsupportedOperationException()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,11 +16,9 @@
|
||||
|
||||
package org.springframework.cloud.contract.stubrunner.spring.cloud
|
||||
|
||||
import groovy.util.logging.Slf4j
|
||||
|
||||
import org.apache.curator.test.TestingServer
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.AfterClass
|
||||
import org.junit.BeforeClass
|
||||
import org.springframework.beans.factory.annotation.Autowired
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
|
||||
import org.springframework.boot.test.IntegrationTest
|
||||
|
||||
@@ -93,7 +93,7 @@ class JUnitMessagingMethodBodyBuilder extends MessagingMethodBodyBuilder {
|
||||
|
||||
@Override
|
||||
protected void validateResponseHeadersBlock(BlockBuilder bb) {
|
||||
bb.addLine("""ContractVerifierMessage response = contractVerifierMessaging.receiveMessage("${outputMessage.sentTo.serverValue}");""")
|
||||
bb.addLine("""ContractVerifierMessage response = contractVerifierMessaging.receive("${outputMessage.sentTo.serverValue}");""")
|
||||
bb.addLine("""assertThat(response).isNotNull();""")
|
||||
outputMessage.headers?.executeForEachHeader { Header header ->\
|
||||
processHeaderElement(bb, header.name, header.serverValue)
|
||||
|
||||
@@ -156,11 +156,11 @@ class SingleTestGenerator {
|
||||
'ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper()'
|
||||
])
|
||||
clazz.addImport([ 'javax.inject.Inject',
|
||||
'org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper',
|
||||
'org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage',
|
||||
'org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging',
|
||||
'org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper',
|
||||
'org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage',
|
||||
'org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging',
|
||||
])
|
||||
clazz.addStaticImport('org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessagingUtil.headers')
|
||||
clazz.addStaticImport('org.springframework.cloud.contract.verifier.messaging.util.ContractVerifierMessagingUtil.headers')
|
||||
}
|
||||
|
||||
private static boolean jsonAssertPresent() {
|
||||
|
||||
@@ -79,7 +79,7 @@ class SpockMessagingMethodBodyBuilder extends MessagingMethodBodyBuilder {
|
||||
@Override
|
||||
protected void validateResponseCodeBlock(BlockBuilder bb) {
|
||||
if (outputMessage) {
|
||||
bb.addLine("""def response = contractVerifierMessaging.receiveMessage('${outputMessage.sentTo.serverValue}')""")
|
||||
bb.addLine("""ContractVerifierMessage response = contractVerifierMessaging.receive('${outputMessage.sentTo.serverValue}')""")
|
||||
bb.addLine("""assert response != null""")
|
||||
} else {
|
||||
bb.addLine('noExceptionThrown()')
|
||||
@@ -130,7 +130,7 @@ class SpockMessagingMethodBodyBuilder extends MessagingMethodBodyBuilder {
|
||||
|
||||
@Override
|
||||
protected String getInputString() {
|
||||
String request = 'def inputMessage = contractVerifierMessaging.create('
|
||||
String request = 'ContractVerifierMessage inputMessage = contractVerifierMessaging.create('
|
||||
if (inputMessage.messageBody) {
|
||||
request = "${request}'''${bodyAsString}'''\n "
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ def contractDsl = Contract.make {
|
||||
bookReturnedTriggered()
|
||||
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('activemq:output')
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receive('activemq:output')
|
||||
assert response != null
|
||||
response.getHeader('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
@@ -97,7 +97,7 @@ def contractDsl = Contract.make {
|
||||
bookReturnedTriggered();
|
||||
|
||||
// then:
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receiveMessage("activemq:output");
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receive("activemq:output");
|
||||
assertThat(response).isNotNull();
|
||||
assertThat(response.getHeader("BOOK-NAME")).isEqualTo("foo");
|
||||
// and:
|
||||
@@ -143,7 +143,7 @@ def contractDsl = Contract.make {
|
||||
// tag::trigger_message_spock[]
|
||||
"""\
|
||||
given:
|
||||
def inputMessage = contractVerifierMessaging.create(
|
||||
ContractVerifierMessage inputMessage = contractVerifierMessaging.create(
|
||||
'''{"bookName":"foo"}''',
|
||||
['sample': 'header']
|
||||
)
|
||||
@@ -152,7 +152,7 @@ when:
|
||||
contractVerifierMessaging.send(inputMessage, 'jms:input')
|
||||
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('jms:output')
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receive('jms:output')
|
||||
assert response !- null
|
||||
response.getHeader('BOOK-NAME') == 'foo'
|
||||
and:
|
||||
@@ -205,7 +205,7 @@ and:
|
||||
contractVerifierMessaging.send(inputMessage, "jms:input");
|
||||
|
||||
// then:
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receiveMessage("jms:output");
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receive("jms:output");
|
||||
assertThat(response).isNotNull();
|
||||
assertThat(response.getHeader("BOOK-NAME")).isEqualTo("foo");
|
||||
// and:
|
||||
@@ -243,7 +243,7 @@ def contractDsl = Contract.make {
|
||||
// tag::trigger_no_output_spock[]
|
||||
'''
|
||||
given:
|
||||
def inputMessage = contractVerifierMessaging.create(
|
||||
ContractVerifierMessage inputMessage = contractVerifierMessaging.create(
|
||||
\'\'\'{"bookName":"foo"}\'\'\',
|
||||
['sample': 'header']
|
||||
)
|
||||
@@ -337,7 +337,7 @@ then:
|
||||
contractVerifierMessaging.send(inputMessage, "jms:input");
|
||||
|
||||
// then:
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receiveMessage("jms:output");
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receive("jms:output");
|
||||
assertThat(response).isNotNull();
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.getPayload()));
|
||||
assertThatJson(parsedJson).field("bookName").isEqualTo("foo");
|
||||
@@ -374,7 +374,7 @@ then:
|
||||
String expectedMsg =
|
||||
"""
|
||||
given:
|
||||
def inputMessage = contractVerifierMessaging.create('''{"bookName":"foo"}'''
|
||||
ContractVerifierMessage inputMessage = contractVerifierMessaging.create('''{"bookName":"foo"}'''
|
||||
,[
|
||||
'sample': 'header'
|
||||
])
|
||||
@@ -383,7 +383,7 @@ then:
|
||||
contractVerifierMessaging.send(inputMessage, 'jms:input')
|
||||
|
||||
then:
|
||||
def response = contractVerifierMessaging.receiveMessage('jms:output')
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receive('jms:output')
|
||||
assert response != null
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.payload))
|
||||
assertThatJson(parsedJson).field("bookName").isEqualTo("foo")
|
||||
@@ -436,7 +436,7 @@ Contract.make {
|
||||
contractVerifierMessaging.send(inputMessage, "jms:input");
|
||||
|
||||
// then:
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receiveMessage("jms:output");
|
||||
ContractVerifierMessage response = contractVerifierMessaging.receive("jms:output");
|
||||
assertThat(response).isNotNull();
|
||||
DocumentContext parsedJson = JsonPath.parse(contractVerifierObjectMapper.writeValueAsString(response.getPayload()));
|
||||
assertThatJson(parsedJson).field("bookName").isEqualTo("foo");
|
||||
|
||||
@@ -18,8 +18,12 @@ package org.springframework.cloud.contract.verifier.messaging.camel;
|
||||
|
||||
import org.apache.camel.CamelContext;
|
||||
import org.apache.camel.Message;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@@ -27,14 +31,36 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(NoOpContractVerifierAutoConfiguration.class)
|
||||
public class ContractVerifierCamelConfiguration {
|
||||
|
||||
@Bean ContractVerifierMessaging<Message> contractVerifierMessaging(CamelContext context,
|
||||
ContractVerifierMessageBuilder<Message> builder) {
|
||||
@Bean
|
||||
ContractVerifierMessageExchange<Message> contractVerifierMessageExchange(
|
||||
CamelContext context, ContractVerifierMessageBuilder<Message> builder) {
|
||||
return new ContractVerifierCamelMessaging(context, builder);
|
||||
}
|
||||
|
||||
@Bean ContractVerifierMessageBuilder<Message> contractVerifierMessageBuilder() {
|
||||
@Bean
|
||||
ContractVerifierMessageBuilder<Message> contractVerifierMessageBuilder() {
|
||||
return new ContractVerifierCamelMessageBuilder();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ContractVerifierMessaging<Message> contractVerifierMessaging(
|
||||
ContractVerifierMessageExchange<Message> exchange) {
|
||||
return new ContractVerifierCamelHelper(exchange);
|
||||
}
|
||||
}
|
||||
|
||||
class ContractVerifierCamelHelper extends ContractVerifierMessaging<Message> {
|
||||
|
||||
public ContractVerifierCamelHelper(
|
||||
ContractVerifierMessageExchange<Message> exchange) {
|
||||
super(exchange);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContractVerifierMessage convert(Message receive) {
|
||||
return new ContractVerifierMessage(receive.getBody(), receive.getHeaders());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
@@ -37,7 +37,7 @@ import org.springframework.stereotype.Component;
|
||||
*/
|
||||
@Component
|
||||
public class ContractVerifierCamelMessaging implements
|
||||
ContractVerifierMessaging<Message> {
|
||||
ContractVerifierMessageExchange<Message> {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(
|
||||
ContractVerifierCamelMessaging.class);
|
||||
@@ -74,7 +74,7 @@ public class ContractVerifierCamelMessaging implements
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public Message receiveMessage(String destination, long timeout, TimeUnit timeUnit) {
|
||||
public Message receive(String destination, long timeout, TimeUnit timeUnit) {
|
||||
try {
|
||||
ConsumerTemplate consumerTemplate = context.createConsumerTemplate();
|
||||
Exchange exchange = consumerTemplate.receive(destination, timeUnit.toMillis(timeout));
|
||||
@@ -87,8 +87,8 @@ public class ContractVerifierCamelMessaging implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message receiveMessage(String destination) {
|
||||
return receiveMessage(destination, 5, TimeUnit.SECONDS);
|
||||
public Message receive(String destination) {
|
||||
return receive(destination, 5, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,8 +16,12 @@
|
||||
|
||||
package org.springframework.cloud.contract.verifier.messaging.integration;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -27,10 +31,11 @@ import org.springframework.messaging.Message;
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureBefore(NoOpContractVerifierAutoConfiguration.class)
|
||||
public class ContractVerifierIntegrationConfiguration<T> {
|
||||
|
||||
@Bean
|
||||
public ContractVerifierMessaging<Message<?>> contractVerifierMessaging(
|
||||
public ContractVerifierMessageExchange<Message<?>> contractVerifierMessageExchange(
|
||||
ApplicationContext applicationContext,
|
||||
ContractVerifierMessageBuilder<Message<?>> contractVerifierMessageBuilder) {
|
||||
return new ContractVerifierIntegrationMessaging(applicationContext,
|
||||
@@ -41,4 +46,24 @@ public class ContractVerifierIntegrationConfiguration<T> {
|
||||
public ContractVerifierMessageBuilder<Message<?>> contractVerifierMessageBuilder() {
|
||||
return new ContractVerifierIntegrationMessageBuilder();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ContractVerifierMessaging<Message<?>> contractVerifierMessaging(
|
||||
ContractVerifierMessageExchange<Message<?>> exchange) {
|
||||
return new ContractVerifierHelper(exchange);
|
||||
}
|
||||
}
|
||||
|
||||
class ContractVerifierHelper extends ContractVerifierMessaging<Message<?>> {
|
||||
|
||||
public ContractVerifierHelper(
|
||||
ContractVerifierMessageExchange<Message<?>> exchange) {
|
||||
super(exchange);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContractVerifierMessage convert(Message<?> receive) {
|
||||
return new ContractVerifierMessage(receive.getPayload(), receive.getHeaders());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.messaging.Message;
|
||||
import org.springframework.messaging.MessageChannel;
|
||||
@@ -35,7 +35,7 @@ import org.springframework.stereotype.Component;
|
||||
*/
|
||||
@Component
|
||||
public class ContractVerifierIntegrationMessaging implements
|
||||
ContractVerifierMessaging<Message<?>> {
|
||||
ContractVerifierMessageExchange<Message<?>> {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(
|
||||
ContractVerifierIntegrationMessaging.class);
|
||||
@@ -67,7 +67,7 @@ public class ContractVerifierIntegrationMessaging implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message<?> receiveMessage(String destination, long timeout, TimeUnit timeUnit) {
|
||||
public Message<?> receive(String destination, long timeout, TimeUnit timeUnit) {
|
||||
try {
|
||||
PollableChannel messageChannel = context.getBean(destination, PollableChannel.class);
|
||||
return messageChannel.receive(timeUnit.toMillis(timeout));
|
||||
@@ -79,8 +79,8 @@ public class ContractVerifierIntegrationMessaging implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message<?> receiveMessage(String destination) {
|
||||
return receiveMessage(destination, 5, TimeUnit.SECONDS);
|
||||
public Message<?> receive(String destination) {
|
||||
return receive(destination, 5, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit;
|
||||
*
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
public interface ContractVerifierMessaging<M> {
|
||||
public interface ContractVerifierMessageExchange<M> {
|
||||
/**
|
||||
* Sends the {@link ContractVerifierMessage} to the given destination.
|
||||
*/
|
||||
@@ -41,10 +41,10 @@ public interface ContractVerifierMessaging<M> {
|
||||
* Receives the {@link ContractVerifierMessage} from the given destination. You can provide the timeout
|
||||
* for receiving that message.
|
||||
*/
|
||||
M receiveMessage(String destination, long timeout, TimeUnit timeUnit);
|
||||
M receive(String destination, long timeout, TimeUnit timeUnit);
|
||||
|
||||
/**
|
||||
* Receives the {@link ContractVerifierMessage} from the given destination. A default timeout will be applied.
|
||||
*/
|
||||
M receiveMessage(String destination);
|
||||
M receive(String destination);
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright 2012-2015 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.contract.verifier.messaging.internal;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Yet another message abstraction. Provides generated tests with a layer that is
|
||||
* independent of the message provider.
|
||||
*
|
||||
* @author Dave Syer
|
||||
*
|
||||
*/
|
||||
public class ContractVerifierMessage {
|
||||
|
||||
private Object payload;
|
||||
|
||||
private Map<String, Object> headers = new LinkedHashMap<>();
|
||||
|
||||
public ContractVerifierMessage() {
|
||||
}
|
||||
|
||||
public ContractVerifierMessage(Object payload, Map<String, Object> headers) {
|
||||
this.payload = payload;
|
||||
if (headers!=null) {
|
||||
this.headers.putAll(headers);
|
||||
}
|
||||
}
|
||||
|
||||
public Object getPayload() {
|
||||
return payload;
|
||||
}
|
||||
|
||||
public void setPayload(Object payload) {
|
||||
this.payload = payload;
|
||||
}
|
||||
|
||||
public Map<String, Object> getHeaders() {
|
||||
return headers;
|
||||
}
|
||||
|
||||
public Object getHeader(String name) {
|
||||
return headers.get(name);
|
||||
}
|
||||
|
||||
public void setHeaders(Map<String, Object> headers) {
|
||||
this.headers = headers;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2012-2015 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.contract.verifier.messaging.internal;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
|
||||
/**
|
||||
* @author Dave Syer
|
||||
*
|
||||
*/
|
||||
public class ContractVerifierMessaging<M> {
|
||||
|
||||
private ContractVerifierMessageExchange<M> exchange;
|
||||
|
||||
public ContractVerifierMessaging(ContractVerifierMessageExchange<M> exchange) {
|
||||
this.exchange = exchange;
|
||||
}
|
||||
|
||||
public void send(ContractVerifierMessage message, String destination) {
|
||||
exchange.send(message.getPayload(), message.getHeaders(), destination);
|
||||
}
|
||||
|
||||
public ContractVerifierMessage receive(String destination) {
|
||||
return convert(exchange.receive(destination));
|
||||
}
|
||||
|
||||
public <T> ContractVerifierMessage create(T payload, Map<String, Object> headers) {
|
||||
return new ContractVerifierMessage(payload, headers);
|
||||
}
|
||||
|
||||
protected ContractVerifierMessage convert(M receive) {
|
||||
return new ContractVerifierMessage(receive, null);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.contract.verifier.messaging;
|
||||
package org.springframework.cloud.contract.verifier.messaging.internal;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright 2013-2016 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.contract.verifier.messaging.noop;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierMessaging;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.Ordered;
|
||||
|
||||
/**
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
|
||||
public class NoOpContractVerifierAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public ContractVerifierMessageExchange<?> contractVerifierMessageExchange() {
|
||||
return new NoOpContractVerifierMessaging();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public ContractVerifierMessageBuilder<?> contractVerifierMessageBuilder() {
|
||||
return new NoOpContractVerifierMessageBuilder();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public ContractVerifierMessaging<?> contractVerifierMessaging(
|
||||
ContractVerifierMessageExchange<Object> exchange) {
|
||||
return new ContractVerifierMessaging<Object>(exchange);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,12 +19,12 @@ package org.springframework.cloud.contract.verifier.messaging.noop;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
|
||||
/**
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
public class NoOpContractVerifierMessaging implements ContractVerifierMessaging<Object> {
|
||||
public class NoOpContractVerifierMessaging implements ContractVerifierMessageExchange<Object> {
|
||||
@Override
|
||||
public void send(Object message, String destination) {
|
||||
}
|
||||
@@ -34,12 +34,12 @@ public class NoOpContractVerifierMessaging implements ContractVerifierMessaging<
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object receiveMessage(String destination, long timeout, TimeUnit timeUnit) {
|
||||
public Object receive(String destination, long timeout, TimeUnit timeUnit) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object receiveMessage(String destination) {
|
||||
public Object receive(String destination) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.cloud.contract.verifier.messaging;
|
||||
package org.springframework.cloud.contract.verifier.messaging.util;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@@ -0,0 +1,3 @@
|
||||
# Auto Configuration
|
||||
org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging=\
|
||||
org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration
|
||||
@@ -16,8 +16,13 @@
|
||||
|
||||
package org.springframework.cloud.contract.verifier.messaging.stream;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage;
|
||||
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -27,10 +32,12 @@ import org.springframework.messaging.Message;
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnProperty(name="stubrunner.stream.enabled", havingValue="true", matchIfMissing=true)
|
||||
@AutoConfigureBefore(NoOpContractVerifierAutoConfiguration.class)
|
||||
public class ContractVerifierStreamAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
ContractVerifierMessaging<Message<?>> contractVerifierMessaging(
|
||||
ContractVerifierMessageExchange<Message<?>> contractVerifierMessageExchange(
|
||||
ApplicationContext applicationContext,
|
||||
ContractVerifierMessageBuilder<Message<?>> contractVerifierMessageBuilder) {
|
||||
return new ContractVerifierStreamMessaging(applicationContext,
|
||||
@@ -41,4 +48,24 @@ public class ContractVerifierStreamAutoConfiguration {
|
||||
ContractVerifierMessageBuilder<Message<?>> contractVerifierMessageBuilder() {
|
||||
return new ContractVerifierStreamMessageBuilder();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ContractVerifierMessaging<?> contractVerifierMessagingConverter(
|
||||
ContractVerifierMessageExchange<Message<?>> exchange) {
|
||||
return new ContractVerifierHelper(exchange);
|
||||
}
|
||||
}
|
||||
|
||||
class ContractVerifierHelper extends ContractVerifierMessaging<Message<?>> {
|
||||
|
||||
public ContractVerifierHelper(
|
||||
ContractVerifierMessageExchange<Message<?>> exchange) {
|
||||
super(exchange);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ContractVerifierMessage convert(Message<?> receive) {
|
||||
return new ContractVerifierMessage(receive.getPayload(), receive.getHeaders());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
|
||||
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageExchange;
|
||||
import org.springframework.cloud.stream.config.BindingProperties;
|
||||
import org.springframework.cloud.stream.config.ChannelBindingServiceProperties;
|
||||
import org.springframework.cloud.stream.test.binder.MessageCollector;
|
||||
@@ -35,7 +35,7 @@ import org.springframework.messaging.MessageChannel;
|
||||
* @author Marcin Grzejszczak
|
||||
*/
|
||||
public class ContractVerifierStreamMessaging implements
|
||||
ContractVerifierMessaging<Message<?>> {
|
||||
ContractVerifierMessageExchange<Message<?>> {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(ContractVerifierStreamMessaging.class);
|
||||
|
||||
@@ -68,7 +68,7 @@ public class ContractVerifierStreamMessaging implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message<?> receiveMessage(String destination, long timeout, TimeUnit timeUnit) {
|
||||
public Message<?> receive(String destination, long timeout, TimeUnit timeUnit) {
|
||||
try {
|
||||
MessageChannel messageChannel = context.getBean(resolvedDestination(destination), MessageChannel.class);
|
||||
return messageCollector.forChannel(messageChannel).poll(timeout, timeUnit);
|
||||
@@ -93,8 +93,8 @@ public class ContractVerifierStreamMessaging implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message<?> receiveMessage(String destination) {
|
||||
return receiveMessage(destination, 5, TimeUnit.SECONDS);
|
||||
public Message<?> receive(String destination) {
|
||||
return receive(destination, 5, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user