blob: b0b01fc993bf73d2533168192592963c7b8c0c83 [file] [log] [blame]
# Common Messaging Extension Tests
This module contains a set of common integration tests that can be reused to test different messaging component extensions and JMS clients.
## Module structure
The module contains sub-modules which are described as follows.
### common
The place to add routes, JAX-RS resources & test cases common to *all* messaging component extensions.
For the routes to be configured in a generic way, the component scheme to use is dynamically determined and exposed as an injectable CDI bean like:
[source,java]
-----
@Inject
ComponentScheme scheme;
-----
Which can then be used in a route to prefix the component scheme (either with String concatenation or `fromF` / `toF`).
### jms
The place to add routes, JAX-RS resources & test cases common to messaging component extensions that extend the `camel-jms` component.
### sjms
The place to add routes, JAX-RS resources & test cases common to messaging component extensions that extend the `camel-sjms` component (currently only `camel-sjms2`).
## Usage
To use the common tests in a integration test module, first add the required dependencies.
[source,xml]
-----
<!-- Messaging extension to test - there should only be one of these on the classpath -->
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jms</artifactId>
</dependency>
<!-- Include the 'common' routes and JAX-RS resources -->
<!-- Note: If the extension under test extends the sjms component use camel-quarkus-integration-test-messaging-sjms -->
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-integration-test-messaging-jms</artifactId>
</dependency>
<!-- The JMS client library to test with (if required) -->
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-artemis-jms</artifactId>
</dependency>
<!-- Include the common test resources -->
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-integration-test-messaging-common</artifactId>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<!-- Note: If the extension under test extends the sjms component use camel-quarkus-integration-test-messaging-sjms -->
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-integration-test-messaging-jms</artifactId>
<type>test-jar</type>
<scope>test</scope>
</dependency>
-----
Next create your test class and extend the common test base class. You can add your extension specific tests as normal if required.
[source,java]
-----
@QuarkusTest
class JmsTest extends AbstractJmsMessagingTest {
}
-----