Tag integration tests and enable integration profile
This commit is contained in:
@@ -174,6 +174,9 @@ To perform this necessary step, run `setup-build.sh`.
|
||||
|
||||
`./mvnw clean install`
|
||||
|
||||
TIP: By default the build skips long running tests, annotated with `@Tag("integration")`,including tests requiring Testcontainers. To run the full test suite, activate the `integration` Maven profile:
|
||||
`./mvnw clean install -Pintegration`. This applies to building functions or individual applications as well.
|
||||
|
||||
However, this may not be what you are interested in since you are probably interested in a single application or a few of them.
|
||||
|
||||
To build the functions and applications that you are interested in, you need to build them selectively, as shown below.
|
||||
|
||||
@@ -12,7 +12,7 @@ The **$$header-enricher$$** $$processor$$ has the following options:
|
||||
|
||||
//tag::configuration-properties[]
|
||||
$$header.enricher.headers$$:: $$\n separated properties representing headers in which values are SpEL expressions, e.g foo='bar' \n baz=payload.baz.$$ *($$Properties$$, default: `$$<none>$$`)*
|
||||
$$header.enricher.overwrite$$:: $$set to true to overwrite any existing message headers.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$header.enricher.overwrite$$:: $$set to true to overwrite any existing message headers.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
//end::configuration-properties[]
|
||||
|
||||
//end::ref-doc[]
|
||||
|
||||
@@ -17,12 +17,12 @@ If the incoming type is `byte[]` and the content type is set to `text/plain` or
|
||||
== Options
|
||||
|
||||
//tag::configuration-properties[]
|
||||
$$splitter.apply-sequence$$:: $$Add correlation/sequence information in headers to facilitate later aggregation.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$splitter.apply-sequence$$:: $$Add correlation/sequence information in headers to facilitate later aggregation.$$ *($$Boolean$$, default: `$$true$$`)*
|
||||
$$splitter.charset$$:: $$The charset to use when converting bytes in text-based files to String.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$splitter.delimiters$$:: $$When expression is null, delimiters to use when tokenizing {@link String} payloads.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$splitter.expression$$:: $$A SpEL expression for splitting payloads.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$splitter.file-markers$$:: $$Set to true or false to use a {@code FileSplitter} (to split text-based files by line) that includes (or not) beginning/end of file markers.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$splitter.markers-json$$:: $$When 'fileMarkers == true', specify if they should be produced as FileSplitter.FileMarker objects or JSON.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$splitter.markers-json$$:: $$When 'fileMarkers == true', specify if they should be produced as FileSplitter.FileMarker objects or JSON.$$ *($$Boolean$$, default: `$$true$$`)*
|
||||
//end::configuration-properties[]
|
||||
|
||||
//end::ref-doc[]
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.elasticsearch.action.get.GetRequest;
|
||||
import org.elasticsearch.action.get.GetResponse;
|
||||
import org.elasticsearch.client.RequestOptions;
|
||||
import org.elasticsearch.client.RestHighLevelClient;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.elasticsearch.ElasticsearchContainer;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -37,6 +38,7 @@ import org.springframework.messaging.support.GenericMessage;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@Tag("integration")
|
||||
@Testcontainers(disabledWithoutDocker = true)
|
||||
public class ElasticsearchSinkTests {
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import lombok.NoArgsConstructor;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.pdx.PdxInstance;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.shaded.com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
@@ -37,6 +38,7 @@ import org.springframework.messaging.support.GenericMessage;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@Tag("integration")
|
||||
public class GeodeSinkTests {
|
||||
|
||||
private static ApplicationContextRunner applicationContextRunner;
|
||||
|
||||
@@ -29,12 +29,12 @@ $$username$$:: $$the username to use when connecting to the broker.$$ *($$String
|
||||
|
||||
=== mqtt.consumer
|
||||
|
||||
$$async$$:: $$whether or not to use async sends.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$charset$$:: $$the charset used to convert a String payload to byte[].$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$client-id$$:: $$identifies the client.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$qos$$:: $$the quality of service to use.$$ *($$Integer$$, default: `$$<none>$$`)*
|
||||
$$retained$$:: $$whether to set the 'retained' flag.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$topic$$:: $$the topic to which the sink will publish.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$async$$:: $$whether or not to use async sends.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$charset$$:: $$the charset used to convert a String payload to byte[].$$ *($$String$$, default: `$$UTF-8$$`)*
|
||||
$$client-id$$:: $$identifies the client.$$ *($$String$$, default: `$$stream.client.id.sink$$`)*
|
||||
$$qos$$:: $$the quality of service to use.$$ *($$Integer$$, default: `$$1$$`)*
|
||||
$$retained$$:: $$whether to set the 'retained' flag.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$topic$$:: $$the topic to which the sink will publish.$$ *($$String$$, default: `$$stream.mqtt$$`)*
|
||||
//end::configuration-properties[]
|
||||
|
||||
//end::ref-doc[]
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.cloud.stream.app.mqtt.sink;
|
||||
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
|
||||
@@ -39,7 +40,7 @@ import org.springframework.integration.support.MessageBuilder;
|
||||
import org.springframework.messaging.Message;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@Tag("integration")
|
||||
public class MqttSinkTests {
|
||||
|
||||
static {
|
||||
|
||||
@@ -16,11 +16,11 @@ Properties grouped by prefix:
|
||||
=== rabbit
|
||||
|
||||
$$converter-bean-name$$:: $$The bean name for a custom message converter; if omitted, a SimpleMessageConverter is used. If 'jsonConverter', a Jackson2JsonMessageConverter bean will be created for you.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$exchange$$:: $$Exchange name - overridden by exchangeNameExpression, if supplied.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$exchange$$:: $$Exchange name - overridden by exchangeNameExpression, if supplied.$$ *($$String$$, default: `$$<empty string>$$`)*
|
||||
$$exchange-expression$$:: $$A SpEL expression that evaluates to an exchange name.$$ *($$Expression$$, default: `$$<none>$$`)*
|
||||
$$mapped-request-headers$$:: $$Headers that will be mapped.$$ *($$String[]$$, default: `$$<none>$$`)*
|
||||
$$own-connection$$:: $$When true, use a separate connection based on the boot properties.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$persistent-delivery-mode$$:: $$Default delivery mode when 'amqp_deliveryMode' header is not present, true for PERSISTENT.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$mapped-request-headers$$:: $$Headers that will be mapped.$$ *($$String[]$$, default: `$$[*]$$`)*
|
||||
$$own-connection$$:: $$When true, use a separate connection based on the boot properties.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$persistent-delivery-mode$$:: $$Default delivery mode when 'amqp_deliveryMode' header is not present, true for PERSISTENT.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$routing-key$$:: $$Routing key - overridden by routingKeyExpression, if supplied.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$routing-key-expression$$:: $$A SpEL expression that evaluates to a routing key.$$ *($$Expression$$, default: `$$<none>$$`)*
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.springframework.cloud.stream.app.sink.rabbit;
|
||||
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
|
||||
import org.springframework.amqp.core.Binding;
|
||||
@@ -41,6 +42,7 @@ import org.springframework.test.annotation.DirtiesContext;
|
||||
properties = {"spring.cloud.function.definition=rabbitConsumer", "spring.rabbitmq.port = ${spring.rabbitmq.test.port}"},
|
||||
webEnvironment = SpringBootTest.WebEnvironment.NONE)
|
||||
@DirtiesContext
|
||||
@Tag("integration")
|
||||
@Import(RabbitSinkIntegrationTests.FooConfiguration.class)
|
||||
abstract class RabbitSinkIntegrationTests {
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Properties grouped by prefix:
|
||||
=== s3.common
|
||||
|
||||
$$endpoint-url$$:: $$Optional endpoint url to connect to s3 compatible storage.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$path-style-access$$:: $$Use path style access.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$path-style-access$$:: $$Use path style access.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
|
||||
=== s3.consumer
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.cloud.stream.app.source.cdc;
|
||||
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
@@ -24,6 +25,8 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||
/**
|
||||
* @author David Turanski
|
||||
*/
|
||||
|
||||
@Tag("integration")
|
||||
public abstract class CdcMySqlTestSupport {
|
||||
|
||||
static final String DATABASE_NAME = "inventory";
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.springframework.cloud.stream.app.source.cdc;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
@@ -40,6 +41,7 @@ import static org.springframework.cloud.stream.app.source.cdc.CdcTestUtils.recei
|
||||
* @author David Turanski
|
||||
* @author Artem Bilan
|
||||
*/
|
||||
@Tag("integration")
|
||||
public class CdcSourceDatabasesIntegrationTest {
|
||||
|
||||
private final SpringApplicationBuilder applicationBuilder = new SpringApplicationBuilder(
|
||||
|
||||
@@ -28,6 +28,7 @@ import lombok.NoArgsConstructor;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.pdx.PdxInstance;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@@ -43,6 +44,7 @@ import org.springframework.messaging.Message;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@Tag("integration")
|
||||
public class GeodeSourceTests {
|
||||
|
||||
private static ApplicationContextRunner applicationContextRunner;
|
||||
|
||||
@@ -29,11 +29,11 @@ $$username$$:: $$the username to use when connecting to the broker.$$ *($$String
|
||||
|
||||
=== mqtt.supplier
|
||||
|
||||
$$binary$$:: $$true to leave the payload as bytes.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$charset$$:: $$the charset used to convert bytes to String (when binary is false).$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$client-id$$:: $$identifies the client.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$qos$$:: $$the qos; a single value for all topics or a comma-delimited list to match the topics.$$ *($$Integer[]$$, default: `$$<none>$$`)*
|
||||
$$topics$$:: $$the topic(s) (comma-delimited) to which the source will subscribe.$$ *($$String[]$$, default: `$$<none>$$`)*
|
||||
$$binary$$:: $$true to leave the payload as bytes.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$charset$$:: $$the charset used to convert bytes to String (when binary is false).$$ *($$String$$, default: `$$UTF-8$$`)*
|
||||
$$client-id$$:: $$identifies the client.$$ *($$String$$, default: `$$stream.client.id.source$$`)*
|
||||
$$qos$$:: $$the qos; a single value for all topics or a comma-delimited list to match the topics.$$ *($$Integer[]$$, default: `$$[0]$$`)*
|
||||
$$topics$$:: $$the topic(s) (comma-delimited) to which the source will subscribe.$$ *($$String[]$$, default: `$$[stream.mqtt]$$`)*
|
||||
//end::configuration-properties[]
|
||||
|
||||
//end::ref-doc[]
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package org.springframework.cloud.stream.app.source.mqtt;
|
||||
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
|
||||
@@ -40,6 +41,7 @@ import org.springframework.messaging.support.MessageBuilder;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@Tag("integration")
|
||||
public class MqttSourceTests {
|
||||
|
||||
static {
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.springframework.cloud.stream.app.source.rabbit;
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.aopalliance.aop.Advice;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.RabbitMQContainer;
|
||||
|
||||
@@ -47,6 +48,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Gary Russell
|
||||
* @author Chris Schaefer
|
||||
*/
|
||||
@Tag("integration")
|
||||
public class RabbitSourceListenerTests {
|
||||
|
||||
static {
|
||||
|
||||
@@ -102,20 +102,20 @@ $$root$$:: $$Root node - store entries are children of this node.$$ *($$String$$
|
||||
=== s3.common
|
||||
|
||||
$$endpoint-url$$:: $$Optional endpoint url to connect to s3 compatible storage.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$path-style-access$$:: $$Use path style access.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$path-style-access$$:: $$Use path style access.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
|
||||
=== s3.supplier
|
||||
|
||||
$$auto-create-local-dir$$:: $$Create or not the local directory.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$delete-remote-files$$:: $$Delete or not remote files after processing.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$auto-create-local-dir$$:: $$Create or not the local directory.$$ *($$Boolean$$, default: `$$true$$`)*
|
||||
$$delete-remote-files$$:: $$Delete or not remote files after processing.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$filename-pattern$$:: $$The pattern to filter remote files.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$filename-regex$$:: $$The regexp to filter remote files.$$ *($$Pattern$$, default: `$$<none>$$`)*
|
||||
$$list-only$$:: $$Set to true to return s3 object metadata without copying file to a local directory.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$list-only$$:: $$Set to true to return s3 object metadata without copying file to a local directory.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$local-dir$$:: $$The local directory to store files.$$ *($$File$$, default: `$$<none>$$`)*
|
||||
$$preserve-timestamp$$:: $$To transfer or not the timestamp of the remote file to the local one.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$remote-dir$$:: $$AWS S3 bucket resource.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$remote-file-separator$$:: $$Remote File separator.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$tmp-file-suffix$$:: $$Temporary file suffix.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$preserve-timestamp$$:: $$To transfer or not the timestamp of the remote file to the local one.$$ *($$Boolean$$, default: `$$true$$`)*
|
||||
$$remote-dir$$:: $$AWS S3 bucket resource.$$ *($$String$$, default: `$$bucket$$`)*
|
||||
$$remote-file-separator$$:: $$Remote File separator.$$ *($$String$$, default: `$$/$$`)*
|
||||
$$tmp-file-suffix$$:: $$Temporary file suffix.$$ *($$String$$, default: `$$.tmp$$`)*
|
||||
//end::configuration-properties[]
|
||||
|
||||
== Amazon AWS common options
|
||||
|
||||
@@ -130,31 +130,31 @@ $$root$$:: $$Root node - store entries are children of this node.$$ *($$String$$
|
||||
|
||||
=== sftp.supplier
|
||||
|
||||
$$auto-create-local-dir$$:: $$Set to true to create the local directory if it does not exist.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$delay-when-empty$$:: $$Duration of delay when no new files are detected.$$ *($$Duration$$, default: `$$<none>$$`)*
|
||||
$$delete-remote-files$$:: $$Set to true to delete remote files after successful transfer.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$auto-create-local-dir$$:: $$Set to true to create the local directory if it does not exist.$$ *($$Boolean$$, default: `$$true$$`)*
|
||||
$$delay-when-empty$$:: $$Duration of delay when no new files are detected.$$ *($$Duration$$, default: `$$1s$$`)*
|
||||
$$delete-remote-files$$:: $$Set to true to delete remote files after successful transfer.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$directories$$:: $$A list of factory "name.directory" pairs.$$ *($$String[]$$, default: `$$<none>$$`)*
|
||||
$$factories$$:: $$A map of factory names to factories.$$ *($$Map<String, Factory>$$, default: `$$<none>$$`)*
|
||||
$$fair$$:: $$True for fair rotation of multiple servers/directories. This is false by default so if a source has more than one entry, these will be received before the other sources are visited.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$fair$$:: $$True for fair rotation of multiple servers/directories. This is false by default so if a source has more than one entry, these will be received before the other sources are visited.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$filename-pattern$$:: $$A filter pattern to match the names of files to transfer.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$filename-regex$$:: $$A filter regex pattern to match the names of files to transfer.$$ *($$Pattern$$, default: `$$<none>$$`)*
|
||||
$$list-only$$:: $$Set to true to return file metadata without the entire payload.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$list-only$$:: $$Set to true to return file metadata without the entire payload.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$local-dir$$:: $$The local directory to use for file transfers.$$ *($$File$$, default: `$$<none>$$`)*
|
||||
$$max-fetch$$:: $$The maximum number of remote files to fetch per poll; default unlimited. Does not apply when listing files or building task launch requests.$$ *($$Integer$$, default: `$$<none>$$`)*
|
||||
$$preserve-timestamp$$:: $$Set to true to preserve the original timestamp.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$remote-dir$$:: $$The remote FTP directory.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$remote-file-separator$$:: $$The remote file separator.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$stream$$:: $$Set to true to stream the file rather than copy to a local directory.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$tmp-file-suffix$$:: $$The suffix to use while the transfer is in progress.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$preserve-timestamp$$:: $$Set to true to preserve the original timestamp.$$ *($$Boolean$$, default: `$$true$$`)*
|
||||
$$remote-dir$$:: $$The remote FTP directory.$$ *($$String$$, default: `$$/$$`)*
|
||||
$$remote-file-separator$$:: $$The remote file separator.$$ *($$String$$, default: `$$/$$`)*
|
||||
$$stream$$:: $$Set to true to stream the file rather than copy to a local directory.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$tmp-file-suffix$$:: $$The suffix to use while the transfer is in progress.$$ *($$String$$, default: `$$.tmp$$`)*
|
||||
|
||||
=== sftp.supplier.factory
|
||||
|
||||
$$allow-unknown-keys$$:: $$True to allow an unknown or changed key.$$ *($$Boolean$$, default: `$$<none>$$`)*
|
||||
$$host$$:: $$The host name of the server.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$allow-unknown-keys$$:: $$True to allow an unknown or changed key.$$ *($$Boolean$$, default: `$$false$$`)*
|
||||
$$host$$:: $$The host name of the server.$$ *($$String$$, default: `$$localhost$$`)*
|
||||
$$known-hosts-expression$$:: $$A SpEL expression resolving to the location of the known hosts file.$$ *($$Expression$$, default: `$$<none>$$`)*
|
||||
$$pass-phrase$$:: $$Passphrase for user's private key.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$pass-phrase$$:: $$Passphrase for user's private key.$$ *($$String$$, default: `$$<empty string>$$`)*
|
||||
$$password$$:: $$The password to use to connect to the server.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
$$port$$:: $$The port of the server.$$ *($$Integer$$, default: `$$<none>$$`)*
|
||||
$$port$$:: $$The port of the server.$$ *($$Integer$$, default: `$$22$$`)*
|
||||
$$private-key$$:: $$Resource location of user's private key.$$ *($$Resource$$, default: `$$<none>$$`)*
|
||||
$$username$$:: $$The username to use to connect to the server.$$ *($$String$$, default: `$$<none>$$`)*
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import java.time.Duration;
|
||||
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -38,6 +39,8 @@ import static org.awaitility.Awaitility.await;
|
||||
* @author David Turanski
|
||||
* @author Artem Bilan
|
||||
*/
|
||||
|
||||
@Tag("integration")
|
||||
@Testcontainers
|
||||
public class CdcBootStarterIntegrationTest {
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ import org.elasticsearch.client.RestHighLevelClient;
|
||||
import org.elasticsearch.common.Strings;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.elasticsearch.ElasticsearchContainer;
|
||||
import org.testcontainers.junit.jupiter.Container;
|
||||
@@ -43,6 +44,7 @@ import org.springframework.messaging.support.MessageBuilder;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@Tag("integration")
|
||||
@Testcontainers(disabledWithoutDocker = true)
|
||||
public class ElasticsearchConsumerApplicationTests {
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import lombok.NoArgsConstructor;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.pdx.PdxInstance;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
@@ -36,6 +37,7 @@ import org.springframework.messaging.support.GenericMessage;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@Tag("integration")
|
||||
public class GeodeConsumerApplicationTests {
|
||||
|
||||
private static ApplicationContextRunner applicationContextRunner;
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.springframework.cloud.fn.consumer.mqtt;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
|
||||
@@ -39,6 +40,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@SpringBootTest(properties = "mqtt.consumer.topic=test")
|
||||
@DirtiesContext
|
||||
@Tag("integration")
|
||||
public class MqttConsumerTests {
|
||||
|
||||
static {
|
||||
|
||||
@@ -18,6 +18,8 @@ package org.springframework.cloud.fn.consumer.redis;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import org.junit.jupiter.api.Tag;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
@@ -31,6 +33,7 @@ import org.springframework.test.annotation.DirtiesContext;
|
||||
*/
|
||||
@SpringBootTest
|
||||
@DirtiesContext
|
||||
@Tag("integration")
|
||||
public class AbstractRedisConsumerTests {
|
||||
|
||||
@Autowired
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.springframework.cloud.fn</groupId>
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.apache.geode.cache.EntryEvent;
|
||||
import org.apache.geode.cache.Region;
|
||||
import org.apache.geode.pdx.PdxInstance;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.test.StepVerifier;
|
||||
@@ -41,6 +42,7 @@ import org.springframework.cloud.fn.test.support.geode.GeodeContainerIntializer;
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.fail;
|
||||
|
||||
@Tag("integration")
|
||||
public class GeodeSupplierApplicationTests {
|
||||
|
||||
private static ApplicationContextRunner applicationContextRunner;
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.springframework.cloud.fn.supplier.mqtt;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import reactor.core.publisher.Flux;
|
||||
@@ -49,6 +50,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
*/
|
||||
@SpringBootTest(properties = {"mqtt.supplier.topics=test,fake", "mqtt.supplier.qos=0,0"})
|
||||
@DirtiesContext
|
||||
@Tag("integration")
|
||||
public class MqttSupplierTests {
|
||||
|
||||
static {
|
||||
|
||||
@@ -313,6 +313,34 @@
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>default</id>
|
||||
<activation>
|
||||
<activeByDefault>true</activeByDefault>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<excludedGroups>integration</excludedGroups>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>integration</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>milestone</id>
|
||||
<distributionManagement>
|
||||
|
||||
Reference in New Issue
Block a user