mirror of
https://github.com/valitydev/testcontainers-annotations.git
synced 2024-11-06 08:55:19 +00:00
Merge pull request #1 from valitydev/ft/TECHDEBT-40/rename_package
TECHDEBT-40: rename packages, use vality dev deps
This commit is contained in:
commit
eb7876c840
@ -50,7 +50,7 @@ testcontainers:
|
|||||||
```
|
```
|
||||||
|
|
||||||
Eсли параметр не указан библиотека будет использовать параметры по умолчанию, указанные в репозитории в
|
Eсли параметр не указан библиотека будет использовать параметры по умолчанию, указанные в репозитории в
|
||||||
файле [`testcontainers-annotations.yml`](https://github.com/rbkmoney/testcontainers-annotations/blob/master/src/main/resources/testcontainers-annotations.yml)
|
файле [`testcontainers-annotations.yml`](https://github.com/ValityDev/testcontainers-annotations/blob/master/src/main/resources/testcontainers-annotations.yml)
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ Eсли параметр не указан библиотека будет ис
|
|||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
В домене [rbkmoney](https://github.com/rbkmoney) распрострена практика создания интеграционных тестов с использованием
|
В домене [ValityDev](https://github.com/ValityDev) распрострена практика создания интеграционных тестов с использованием
|
||||||
цепочки наследования классов, когда родитель является классом с конфигом теста, в которой спрятана вся техническая
|
цепочки наследования классов, когда родитель является классом с конфигом теста, в которой спрятана вся техническая
|
||||||
инициализация спрингового приложения и внешних зависимостей, которые по стандарту
|
инициализация спрингового приложения и внешних зависимостей, которые по стандарту
|
||||||
являются [TestContainers](https://github.com/testcontainers/testcontainers-java)
|
являются [TestContainers](https://github.com/testcontainers/testcontainers-java)
|
||||||
|
32
pom.xml
32
pom.xml
@ -4,16 +4,16 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.rbkmoney</groupId>
|
<groupId>dev.vality</groupId>
|
||||||
<artifactId>library-parent-pom</artifactId>
|
<artifactId>library-parent-pom</artifactId>
|
||||||
<version>1.0.3</version>
|
<version>1.0.0</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<artifactId>testcontainers-annotations</artifactId>
|
<artifactId>testcontainers-annotations</artifactId>
|
||||||
<version>1.3.1</version>
|
<version>1.3.2</version>
|
||||||
<url>https://github.com/rbkmoney/testcontainers-annotations</url>
|
<url>https://github.com/valitydev/testcontainers-annotations</url>
|
||||||
|
|
||||||
<licenses>
|
<licenses>
|
||||||
<license>
|
<license>
|
||||||
@ -24,20 +24,20 @@
|
|||||||
|
|
||||||
<developers>
|
<developers>
|
||||||
<developer>
|
<developer>
|
||||||
<organization>RBK.money</organization>
|
<organization>Vality.Dev</organization>
|
||||||
<organizationUrl>https://rbk.money</organizationUrl>
|
<organizationUrl>https://vality.dev/</organizationUrl>
|
||||||
</developer>
|
</developer>
|
||||||
</developers>
|
</developers>
|
||||||
|
|
||||||
<scm>
|
<scm>
|
||||||
<connection>scm:git:git://github.com/rbkmoney/testcontainers-annotations.git</connection>
|
<connection>scm:git:git://github.com/ValityDev/testcontainers-annotations.git</connection>
|
||||||
<developerConnection>scm:git:ssh://github.com/rbkmoney/testcontainers-annotations.git</developerConnection>
|
<developerConnection>scm:git:ssh://github.com/ValityDev/testcontainers-annotations.git</developerConnection>
|
||||||
<url>https://github.com/rbkmoney/testcontainers-annotations/tree/master</url>
|
<url>https://github.com/ValityDev/testcontainers-annotations/tree/master</url>
|
||||||
</scm>
|
</scm>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<kafka-common-lib.version>0.1.9</kafka-common-lib.version>
|
<kafka-common-lib.version>0.1.9</kafka-common-lib.version>
|
||||||
<woody.version>[1.1.22,)</woody.version>
|
<woody.version>[1.0.0,)</woody.version>
|
||||||
<spring-boot.version>2.5.0</spring-boot.version>
|
<spring-boot.version>2.5.0</spring-boot.version>
|
||||||
<lombok.version>1.18.16</lombok.version>
|
<lombok.version>1.18.16</lombok.version>
|
||||||
<testcontainers.version>1.16.0</testcontainers.version>
|
<testcontainers.version>1.16.0</testcontainers.version>
|
||||||
@ -47,21 +47,21 @@
|
|||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!--rbkmoney-->
|
<!--rbkmoney & ValityDev-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.rbkmoney</groupId>
|
<groupId>com.rbkmoney</groupId>
|
||||||
<artifactId>kafka-common-lib</artifactId>
|
<artifactId>kafka-common-lib</artifactId>
|
||||||
<version>${kafka-common-lib.version}</version>
|
<version>${kafka-common-lib.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.rbkmoney.woody</groupId>
|
<groupId>dev.vality.woody</groupId>
|
||||||
<artifactId>woody-thrift</artifactId>
|
<artifactId>woody-thrift</artifactId>
|
||||||
<version>${woody.version}</version>
|
<version>${woody.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.rbkmoney</groupId>
|
<groupId>com.rbkmoney</groupId>
|
||||||
<artifactId>payout-manager-proto</artifactId>
|
<artifactId>payout-manager-proto</artifactId>
|
||||||
<version>1.17-8aa3eb8</version>
|
<version>1.21-bdd9888</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.rbkmoney</groupId>
|
<groupId>com.rbkmoney</groupId>
|
||||||
@ -69,14 +69,14 @@
|
|||||||
<version>1.18-d814d69</version>
|
<version>1.18-d814d69</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.rbkmoney</groupId>
|
<groupId>dev.vality</groupId>
|
||||||
<artifactId>fraudbusters-proto</artifactId>
|
<artifactId>fraudbusters-proto</artifactId>
|
||||||
<version>1.92-cb27835</version>
|
<version>1.102-269908f</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.rbkmoney</groupId>
|
<groupId>com.rbkmoney</groupId>
|
||||||
<artifactId>clickhouse-test</artifactId>
|
<artifactId>clickhouse-test</artifactId>
|
||||||
<version>0.0.1</version>
|
<version>0.0.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.rbkmoney.geck</groupId>
|
<groupId>com.rbkmoney.geck</groupId>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations;
|
package dev.vality.testcontainers.annotations;
|
||||||
|
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.test.annotation.DirtiesContext;
|
import org.springframework.test.annotation.DirtiesContext;
|
||||||
@ -11,7 +11,7 @@ import java.lang.annotation.Target;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Аннотация {@code @DefaultSpringBootTest} представляет из себя
|
* Аннотация {@code @DefaultSpringBootTest} представляет из себя
|
||||||
* типичный для домена <a href="https://github.com/rbkmoney">rbkmoney</a>
|
* типичный для домена <a href="https://github.com/ValityDev">ValityDev</a>
|
||||||
* набор аннотаций, используемых с {@link SpringBootTest} при тестировании спринговых приложений
|
* набор аннотаций, используемых с {@link SpringBootTest} при тестировании спринговых приложений
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
@ -1,7 +1,8 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations;
|
package dev.vality.testcontainers.annotations;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.kafka.config.KafkaConsumerConfig;
|
import dev.vality.testcontainers.annotations.kafka.config.KafkaConsumerConfig;
|
||||||
import com.rbkmoney.testcontainers.annotations.kafka.config.KafkaProducerConfig;
|
import dev.vality.testcontainers.annotations.kafka.config.KafkaProducerConfig;
|
||||||
|
import dev.vality.testcontainers.annotations.kafka.KafkaTestcontainer;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
|
|
||||||
@ -12,17 +13,17 @@ import java.lang.annotation.Target;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Аннотация {@code @KafkaSpringBootTest} представляет из себя
|
* Аннотация {@code @KafkaSpringBootTest} представляет из себя
|
||||||
* типичный для домена <a href="https://github.com/rbkmoney">rbkmoney</a>
|
* типичный для домена <a href="https://github.com/ValityDev">ValityDev</a>
|
||||||
* набор аннотаций, используемых с {@link SpringBootTest} при тестировании спринговых приложений,
|
* набор аннотаций, используемых с {@link SpringBootTest} при тестировании спринговых приложений,
|
||||||
* которые расположены в обертке {@link DefaultSpringBootTest}
|
* которые расположены в обертке {@link DefaultSpringBootTest}
|
||||||
* и дополнительными подключенными конфигами
|
* и дополнительными подключенными конфигами
|
||||||
* {@link KafkaProducerConfig} и {@link KafkaConsumerConfig}, которые содержат удобные инструменты
|
* {@link KafkaProducerConfig} и {@link KafkaConsumerConfig}, которые содержат удобные инструменты
|
||||||
* для тестирования консьюмеров и продъюсеров
|
* для тестирования консьюмеров и продъюсеров
|
||||||
*
|
*
|
||||||
* @see com.rbkmoney.testcontainers.annotations.kafka.KafkaTestcontainer @KafkaTestcontainer
|
* @see KafkaTestcontainer @KafkaTestcontainer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.kafka.config.KafkaProducerConfig KafkaProducerConfig
|
* @see KafkaProducerConfig KafkaProducerConfig
|
||||||
* @see com.rbkmoney.testcontainers.annotations.kafka.config.KafkaConsumerConfig KafkaConsumerConfig
|
* @see KafkaConsumerConfig KafkaConsumerConfig
|
||||||
* @see com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest @DefaultSpringBootTest
|
* @see DefaultSpringBootTest @DefaultSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,5 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.ceph;
|
package dev.vality.testcontainers.annotations.ceph;
|
||||||
|
|
||||||
|
import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@ -14,7 +15,7 @@ import java.lang.annotation.Target;
|
|||||||
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
||||||
* <p>Аннотация не требует дополнительной конфигурации
|
* <p>Аннотация не требует дополнительной конфигурации
|
||||||
* <p>Пример использования в коде — в
|
* <p>Пример использования в коде — в
|
||||||
* <a href="https://github.com/rbkmoney/file-storage/tree/master/src/test/java/com/rbkmoney/file/storage">file-storage</a>
|
* <a href="https://github.com/ValityDev/file-storage/tree/master/src/test/java/com/ValityDev/file/storage">file-storage</a>
|
||||||
* <p><h3>Примеры</h3>
|
* <p><h3>Примеры</h3>
|
||||||
* <p>В примере ниже {@link CephTestcontainer} подключается напрямую
|
* <p>В примере ниже {@link CephTestcontainer} подключается напрямую
|
||||||
* к {@link SpringBootTest} для проведения теста, при котором идет запись и чтение данных из хранилища с файлами
|
* к {@link SpringBootTest} для проведения теста, при котором идет запись и чтение данных из хранилища с файлами
|
||||||
@ -24,7 +25,7 @@ import java.lang.annotation.Target;
|
|||||||
* public class FileStorageTest {
|
* public class FileStorageTest {
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link CephTestcontainer} подключается к
|
* <p>В примере ниже {@link CephTestcontainer} подключается к
|
||||||
* {@link com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest},
|
* {@link DefaultSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -42,7 +43,7 @@ import java.lang.annotation.Target;
|
|||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see CephTestcontainerExtension CephTestcontainerExtension
|
* @see CephTestcontainerExtension CephTestcontainerExtension
|
||||||
* @see org.testcontainers.containers.GenericContainer GenericContainer
|
* @see org.testcontainers.containers.GenericContainer GenericContainer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest @DefaultSpringBootTest
|
* @see DefaultSpringBootTest @DefaultSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,8 +1,8 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.ceph;
|
package dev.vality.testcontainers.annotations.ceph;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.util.GenericContainerUtil;
|
import dev.vality.testcontainers.annotations.util.GenericContainerUtil;
|
||||||
|
import dev.vality.testcontainers.annotations.util.SpringApplicationPropertiesLoader;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import lombok.var;
|
|
||||||
import org.junit.jupiter.api.extension.AfterAllCallback;
|
import org.junit.jupiter.api.extension.AfterAllCallback;
|
||||||
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
||||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||||
@ -17,9 +17,8 @@ import org.testcontainers.containers.GenericContainer;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.ceph.CephTestcontainerFactory.ACCESS_KEY;
|
import static dev.vality.testcontainers.annotations.ceph.CephTestcontainerFactory.ACCESS_KEY;
|
||||||
import static com.rbkmoney.testcontainers.annotations.ceph.CephTestcontainerFactory.SECRET_KEY;
|
import static dev.vality.testcontainers.annotations.ceph.CephTestcontainerFactory.SECRET_KEY;
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@code @CephTestcontainerExtension} инициализирует тестконтейнер из {@link CephTestcontainerFactory},
|
* {@code @CephTestcontainerExtension} инициализирует тестконтейнер из {@link CephTestcontainerFactory},
|
||||||
@ -122,8 +121,8 @@ public class CephTestcontainerExtension implements BeforeAllCallback, AfterAllCa
|
|||||||
"storage.endpoint=" + container.getContainerIpAddress() + ":" +
|
"storage.endpoint=" + container.getContainerIpAddress() + ":" +
|
||||||
container.getMappedPort(8080),
|
container.getMappedPort(8080),
|
||||||
// "storage.signingRegion=" + signingRegion,
|
// "storage.signingRegion=" + signingRegion,
|
||||||
"storage.accessKey=" + loadDefaultLibraryProperty(ACCESS_KEY),
|
"storage.accessKey=" + SpringApplicationPropertiesLoader.loadDefaultLibraryProperty(ACCESS_KEY),
|
||||||
"storage.secretKey=" + loadDefaultLibraryProperty(SECRET_KEY),
|
"storage.secretKey=" + SpringApplicationPropertiesLoader.loadDefaultLibraryProperty(SECRET_KEY),
|
||||||
// "storage.clientProtocol=" + clientProtocol,
|
// "storage.clientProtocol=" + clientProtocol,
|
||||||
// "storage.clientMaxErrorRetry=" + clientMaxErrorRetry,
|
// "storage.clientMaxErrorRetry=" + clientMaxErrorRetry,
|
||||||
"storage.bucketName=" + bucketName,
|
"storage.bucketName=" + bucketName,
|
||||||
@ -134,15 +133,15 @@ public class CephTestcontainerExtension implements BeforeAllCallback, AfterAllCa
|
|||||||
// "s3.client-protocol=" + clientProtocol,
|
// "s3.client-protocol=" + clientProtocol,
|
||||||
// "s3.client-max-error-retry=" + clientMaxErrorRetry,
|
// "s3.client-max-error-retry=" + clientMaxErrorRetry,
|
||||||
// "s3.signer-override=" + signerOverride,
|
// "s3.signer-override=" + signerOverride,
|
||||||
"s3.access-key=" + loadDefaultLibraryProperty(ACCESS_KEY),
|
"s3.access-key=" + SpringApplicationPropertiesLoader.loadDefaultLibraryProperty(ACCESS_KEY),
|
||||||
"s3.secret-key=" + loadDefaultLibraryProperty(SECRET_KEY),
|
"s3.secret-key=" + SpringApplicationPropertiesLoader.loadDefaultLibraryProperty(SECRET_KEY),
|
||||||
"s3-sdk-v2.enabled=false",
|
"s3-sdk-v2.enabled=false",
|
||||||
"s3-sdk-v2.endpoint=" + String.format("http://%s:%d/", container.getHost(),
|
"s3-sdk-v2.endpoint=" + String.format("http://%s:%d/", container.getHost(),
|
||||||
container.getMappedPort(8080)),
|
container.getMappedPort(8080)),
|
||||||
"s3-sdk-v2.bucket-name=" + bucketName,
|
"s3-sdk-v2.bucket-name=" + bucketName,
|
||||||
// "s3-sdk-v2.region=" + signingRegion,
|
// "s3-sdk-v2.region=" + signingRegion,
|
||||||
"s3-sdk-v2.access-key=" + loadDefaultLibraryProperty(ACCESS_KEY),
|
"s3-sdk-v2.access-key=" + SpringApplicationPropertiesLoader.loadDefaultLibraryProperty(ACCESS_KEY),
|
||||||
"s3-sdk-v2.secret-key=" + loadDefaultLibraryProperty(SECRET_KEY))
|
"s3-sdk-v2.secret-key=" + SpringApplicationPropertiesLoader.loadDefaultLibraryProperty(SECRET_KEY))
|
||||||
.and(properties)
|
.and(properties)
|
||||||
.applyTo(context);
|
.applyTo(context);
|
||||||
}
|
}
|
@ -1,5 +1,7 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.ceph;
|
package dev.vality.testcontainers.annotations.ceph;
|
||||||
|
|
||||||
|
import dev.vality.testcontainers.annotations.util.GenericContainerUtil;
|
||||||
|
import dev.vality.testcontainers.annotations.util.SpringApplicationPropertiesLoader;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Synchronized;
|
import lombok.Synchronized;
|
||||||
@ -9,9 +11,6 @@ import org.testcontainers.utility.DockerImageName;
|
|||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.GenericContainerUtil.getWaitStrategy;
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Фабрика по созданию контейнеров
|
* Фабрика по созданию контейнеров
|
||||||
* <p>{@link #create()} создает экземпляр тестконтейнера
|
* <p>{@link #create()} создает экземпляр тестконтейнера
|
||||||
@ -56,17 +55,17 @@ public class CephTestcontainerFactory {
|
|||||||
try (GenericContainer<?> container = new GenericContainer<>(
|
try (GenericContainer<?> container = new GenericContainer<>(
|
||||||
DockerImageName
|
DockerImageName
|
||||||
.parse(CEPH_DAEMON_IMAGE_NAME)
|
.parse(CEPH_DAEMON_IMAGE_NAME)
|
||||||
.withTag(loadDefaultLibraryProperty(TAG_PROPERTY)))
|
.withTag(SpringApplicationPropertiesLoader.loadDefaultLibraryProperty(TAG_PROPERTY)))
|
||||||
.withExposedPorts(5000, 8080)
|
.withExposedPorts(5000, 8080)
|
||||||
.withNetworkAliases("ceph-daemon-" + UUID.randomUUID())
|
.withNetworkAliases("ceph-daemon-" + UUID.randomUUID())
|
||||||
.withEnv("RGW_NAME", "localhost")
|
.withEnv("RGW_NAME", "localhost")
|
||||||
.withEnv("NETWORK_AUTO_DETECT", "4")
|
.withEnv("NETWORK_AUTO_DETECT", "4")
|
||||||
.withEnv("CEPH_DAEMON", "demo")
|
.withEnv("CEPH_DAEMON", "demo")
|
||||||
.withEnv("CEPH_DEMO_UID", "ceph-test")
|
.withEnv("CEPH_DEMO_UID", "ceph-test")
|
||||||
.withEnv("CEPH_DEMO_ACCESS_KEY", loadDefaultLibraryProperty(ACCESS_KEY))
|
.withEnv("CEPH_DEMO_ACCESS_KEY", SpringApplicationPropertiesLoader.loadDefaultLibraryProperty(ACCESS_KEY))
|
||||||
.withEnv("CEPH_DEMO_SECRET_KEY", loadDefaultLibraryProperty(SECRET_KEY))
|
.withEnv("CEPH_DEMO_SECRET_KEY", SpringApplicationPropertiesLoader.loadDefaultLibraryProperty(SECRET_KEY))
|
||||||
.withEnv("CEPH_DEMO_BUCKET", "TEST")
|
.withEnv("CEPH_DEMO_BUCKET", "TEST")
|
||||||
.waitingFor(getWaitStrategy("/api/v0.1/health", 200, 5000, Duration.ofMinutes(1)))) {
|
.waitingFor(GenericContainerUtil.getWaitStrategy("/api/v0.1/health", 200, 5000, Duration.ofMinutes(1)))) {
|
||||||
return container;
|
return container;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.ceph;
|
package dev.vality.testcontainers.annotations.ceph;
|
||||||
|
|
||||||
|
import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@ -14,7 +15,7 @@ import java.lang.annotation.Target;
|
|||||||
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
||||||
* <p>Аннотация не требует дополнительной конфигурации
|
* <p>Аннотация не требует дополнительной конфигурации
|
||||||
* <p>Пример использования в коде — в
|
* <p>Пример использования в коде — в
|
||||||
* <a href="https://github.com/rbkmoney/file-storage/tree/master/src/test/java/com/rbkmoney/file/storage">file-storage</a>
|
* <a href="https://github.com/ValityDev/file-storage/tree/master/src/test/java/com/ValityDev/file/storage">file-storage</a>
|
||||||
* <p><h3>Синглтон</h3>
|
* <p><h3>Синглтон</h3>
|
||||||
* <p>Аннотация является {@link CephTestcontainer} в режиме
|
* <p>Аннотация является {@link CephTestcontainer} в режиме
|
||||||
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
||||||
@ -32,7 +33,7 @@ import java.lang.annotation.Target;
|
|||||||
* public class FileStorageTest {
|
* public class FileStorageTest {
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link CephTestcontainerSingleton} подключается к
|
* <p>В примере ниже {@link CephTestcontainerSingleton} подключается к
|
||||||
* {@link com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest},
|
* {@link DefaultSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -49,7 +50,7 @@ import java.lang.annotation.Target;
|
|||||||
* @see CephTestcontainer @CephTestcontainer
|
* @see CephTestcontainer @CephTestcontainer
|
||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see org.testcontainers.containers.GenericContainer PostgreSQLContainer
|
* @see org.testcontainers.containers.GenericContainer PostgreSQLContainer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest @DefaultSpringBootTest
|
* @see DefaultSpringBootTest @DefaultSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,5 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.clickhouse;
|
package dev.vality.testcontainers.annotations.clickhouse;
|
||||||
|
|
||||||
|
import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@ -14,7 +15,7 @@ import java.lang.annotation.Target;
|
|||||||
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
||||||
* <p>Аннотация требует дополнительной конфигурации {@link ClickhouseTestcontainer#migrations()}
|
* <p>Аннотация требует дополнительной конфигурации {@link ClickhouseTestcontainer#migrations()}
|
||||||
* <p>Пример использования в коде — в
|
* <p>Пример использования в коде — в
|
||||||
* <a href="https://github.com/rbkmoney/fraudbusters/pull/137">fraudbusters</a>
|
* <a href="https://github.com/ValityDev/fraudbusters/pull/137">fraudbusters</a>
|
||||||
* <p><h3>Примеры</h3>
|
* <p><h3>Примеры</h3>
|
||||||
* <p>В примере ниже {@link ClickhouseTestcontainer} подключается напрямую
|
* <p>В примере ниже {@link ClickhouseTestcontainer} подключается напрямую
|
||||||
* к {@link SpringBootTest} для проведения теста DAO слоя, при котором идет запись и чтение данных из базы данных
|
* к {@link SpringBootTest} для проведения теста DAO слоя, при котором идет запись и чтение данных из базы данных
|
||||||
@ -32,7 +33,7 @@ import java.lang.annotation.Target;
|
|||||||
* ...
|
* ...
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link ClickhouseTestcontainer} подключается к
|
* <p>В примере ниже {@link ClickhouseTestcontainer} подключается к
|
||||||
* {@link com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest},
|
* {@link DefaultSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -58,7 +59,7 @@ import java.lang.annotation.Target;
|
|||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see ClickhouseTestcontainerExtension ClickhouseTestcontainerExtension
|
* @see ClickhouseTestcontainerExtension ClickhouseTestcontainerExtension
|
||||||
* @see org.testcontainers.containers.ClickHouseContainer ClickHouseContainer
|
* @see org.testcontainers.containers.ClickHouseContainer ClickHouseContainer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest @DefaultSpringBootTest
|
* @see DefaultSpringBootTest @DefaultSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,11 +1,10 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.clickhouse;
|
package dev.vality.testcontainers.annotations.clickhouse;
|
||||||
|
|
||||||
import com.rbkmoney.clickhouse.initializer.ChInitializer;
|
import com.rbkmoney.clickhouse.initializer.ChInitializer;
|
||||||
import com.rbkmoney.clickhouse.initializer.ConnectionManager;
|
import com.rbkmoney.clickhouse.initializer.ConnectionManager;
|
||||||
import com.rbkmoney.testcontainers.annotations.exception.ClickhouseStartingException;
|
import dev.vality.testcontainers.annotations.exception.ClickhouseStartingException;
|
||||||
import com.rbkmoney.testcontainers.annotations.util.GenericContainerUtil;
|
import dev.vality.testcontainers.annotations.util.GenericContainerUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import lombok.var;
|
|
||||||
import org.junit.jupiter.api.extension.AfterAllCallback;
|
import org.junit.jupiter.api.extension.AfterAllCallback;
|
||||||
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
||||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||||
@ -46,7 +45,7 @@ import java.util.Optional;
|
|||||||
* {@link ClickhouseTestcontainerSingleton#dbNameShouldBeDropped()},
|
* {@link ClickhouseTestcontainerSingleton#dbNameShouldBeDropped()},
|
||||||
* таким образом обеспечивая изоляцию данных между файлами с тестами
|
* таким образом обеспечивая изоляцию данных между файлами с тестами
|
||||||
* <p>Для работы с миграциями используется авторская библиотека Константина Стружкина
|
* <p>Для работы с миграциями используется авторская библиотека Константина Стружкина
|
||||||
* com.rbkmoney:clickhouse-test
|
* dev.vality:clickhouse-test
|
||||||
*
|
*
|
||||||
* @see ClickhouseTestcontainerFactory ClickhouseTestcontainerFactory
|
* @see ClickhouseTestcontainerFactory ClickhouseTestcontainerFactory
|
||||||
* @see ClickhouseTestcontainerExtension.ClickhouseTestcontainerContextCustomizerFactory ClickhouseTestcontainerContextCustomizerFactory
|
* @see ClickhouseTestcontainerExtension.ClickhouseTestcontainerContextCustomizerFactory ClickhouseTestcontainerContextCustomizerFactory
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.clickhouse;
|
package dev.vality.testcontainers.annotations.clickhouse;
|
||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -9,7 +9,7 @@ import org.testcontainers.utility.DockerImageName;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
import static dev.vality.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Фабрика по созданию контейнеров
|
* Фабрика по созданию контейнеров
|
@ -1,5 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.clickhouse;
|
package dev.vality.testcontainers.annotations.clickhouse;
|
||||||
|
|
||||||
|
import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ import java.lang.annotation.Target;
|
|||||||
* <p>Аннотация требует дополнительной конфигурации
|
* <p>Аннотация требует дополнительной конфигурации
|
||||||
* {@link ClickhouseTestcontainerSingleton#migrations()}} и {@link ClickhouseTestcontainerSingleton#dbNameShouldBeDropped()}
|
* {@link ClickhouseTestcontainerSingleton#migrations()}} и {@link ClickhouseTestcontainerSingleton#dbNameShouldBeDropped()}
|
||||||
* <p>Пример использования в коде — в
|
* <p>Пример использования в коде — в
|
||||||
* <a href="https://github.com/rbkmoney/fraudbusters/pull/137">fraudbusters</a>
|
* <a href="https://github.com/ValityDev/fraudbusters/pull/137">fraudbusters</a>
|
||||||
* <p><h3>Синглтон</h3>
|
* <p><h3>Синглтон</h3>
|
||||||
* <p>Аннотация является {@link ClickhouseTestcontainer} в режиме
|
* <p>Аннотация является {@link ClickhouseTestcontainer} в режиме
|
||||||
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
||||||
@ -45,7 +46,7 @@ import java.lang.annotation.Target;
|
|||||||
* ...
|
* ...
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link ClickhouseTestcontainerSingleton} подключается к
|
* <p>В примере ниже {@link ClickhouseTestcontainerSingleton} подключается к
|
||||||
* {@link com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest},
|
* {@link DefaultSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -71,7 +72,7 @@ import java.lang.annotation.Target;
|
|||||||
* @see ClickhouseTestcontainer @ClickhouseTestcontainer
|
* @see ClickhouseTestcontainer @ClickhouseTestcontainer
|
||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see org.testcontainers.containers.ClickHouseContainer ClickHouseContainer
|
* @see org.testcontainers.containers.ClickHouseContainer ClickHouseContainer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest @DefaultSpringBootTest
|
* @see DefaultSpringBootTest @DefaultSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,6 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.clickhouse.demo;
|
package dev.vality.testcontainers.annotations.clickhouse.demo;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.clickhouse.ClickhouseTestcontainer;
|
import dev.vality.testcontainers.annotations.clickhouse.ClickhouseTestcontainer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* this is a demo example of filling in annotation, do not use
|
* this is a demo example of filling in annotation, do not use
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.exception;
|
package dev.vality.testcontainers.annotations.exception;
|
||||||
|
|
||||||
public class ClickhouseStartingException extends RuntimeException {
|
public class ClickhouseStartingException extends RuntimeException {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.exception;
|
package dev.vality.testcontainers.annotations.exception;
|
||||||
|
|
||||||
public class IoException extends RuntimeException {
|
public class IoException extends RuntimeException {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.exception;
|
package dev.vality.testcontainers.annotations.exception;
|
||||||
|
|
||||||
public class KafkaStartingException extends RuntimeException {
|
public class KafkaStartingException extends RuntimeException {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.exception;
|
package dev.vality.testcontainers.annotations.exception;
|
||||||
|
|
||||||
public class NoSuchFileException extends RuntimeException {
|
public class NoSuchFileException extends RuntimeException {
|
||||||
|
|
@ -1,6 +1,9 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.kafka;
|
package dev.vality.testcontainers.annotations.kafka;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.postgresql.PostgresqlTestcontainer;
|
import dev.vality.testcontainers.annotations.KafkaSpringBootTest;
|
||||||
|
import dev.vality.testcontainers.annotations.postgresql.PostgresqlTestcontainer;
|
||||||
|
import dev.vality.testcontainers.annotations.kafka.config.KafkaConsumer;
|
||||||
|
import dev.vality.testcontainers.annotations.kafka.config.KafkaProducer;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@ -14,10 +17,10 @@ import java.lang.annotation.Target;
|
|||||||
* {@link org.testcontainers.containers.KafkaContainer}, также
|
* {@link org.testcontainers.containers.KafkaContainer}, также
|
||||||
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
||||||
* <p>Аннотация требует дополнительной конфигурации {@link KafkaTestcontainer#topicsKeys()}
|
* <p>Аннотация требует дополнительной конфигурации {@link KafkaTestcontainer#topicsKeys()}
|
||||||
* <p>Пример использования {@link KafkaTestcontainer} с {@link com.rbkmoney.testcontainers.annotations.kafka.config.KafkaProducer} — в
|
* <p>Пример использования {@link KafkaTestcontainer} с {@link KafkaProducer} — в
|
||||||
* <a href="https://github.com/rbkmoney/magista/tree/master/src/test/java/com/rbkmoney/magista/config">magista</a>
|
* <a href="https://github.com/ValityDev/magista/tree/master/src/test/java/com/ValityDev/magista/config">magista</a>
|
||||||
* <p>Пример использования {@link KafkaTestcontainer} с {@link com.rbkmoney.testcontainers.annotations.kafka.config.KafkaConsumer} — в
|
* <p>Пример использования {@link KafkaTestcontainer} с {@link KafkaConsumer} — в
|
||||||
* <a href="https://github.com/rbkmoney/sink-drinker/blob/master/src/test/java/com/rbkmoney/sinkdrinker/kafka/KafkaSenderTest.java">sink-drinker</a>
|
* <a href="https://github.com/ValityDev/sink-drinker/blob/master/src/test/java/com/ValityDev/sinkdrinker/kafka/KafkaSenderTest.java">sink-drinker</a>
|
||||||
* <p><h3>Примеры</h3>
|
* <p><h3>Примеры</h3>
|
||||||
* <p>В примере ниже создается обертка над аннотацией для конкретного приложения с инициализацией
|
* <p>В примере ниже создается обертка над аннотацией для конкретного приложения с инициализацией
|
||||||
* конкретных топиков приложения. Эту обертку можно позже переиспользовать для любых тестов,
|
* конкретных топиков приложения. Эту обертку можно позже переиспользовать для любых тестов,
|
||||||
@ -54,7 +57,7 @@ import java.lang.annotation.Target;
|
|||||||
* ...
|
* ...
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link KafkaTestcontainer} подключается к
|
* <p>В примере ниже {@link KafkaTestcontainer} подключается к
|
||||||
* {@link PostgresqlTestcontainer} и {@link com.rbkmoney.testcontainers.annotations.KafkaSpringBootTest},
|
* {@link PostgresqlTestcontainer} и {@link KafkaSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -85,9 +88,9 @@ import java.lang.annotation.Target;
|
|||||||
* @see KafkaTestcontainerSingleton @KafkaTestcontainerSingleton
|
* @see KafkaTestcontainerSingleton @KafkaTestcontainerSingleton
|
||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see KafkaTestcontainerExtension KafkaTestcontainerExtension
|
* @see KafkaTestcontainerExtension KafkaTestcontainerExtension
|
||||||
* @see com.rbkmoney.testcontainers.annotations.kafka.config.KafkaProducer KafkaProducer
|
* @see KafkaProducer KafkaProducer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.kafka.config.KafkaConsumer KafkaConsumer
|
* @see KafkaConsumer KafkaConsumer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.KafkaSpringBootTest @KafkaSpringBootTest
|
* @see KafkaSpringBootTest @KafkaSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,9 +1,9 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.kafka;
|
package dev.vality.testcontainers.annotations.kafka;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.exception.KafkaStartingException;
|
import dev.vality.testcontainers.annotations.exception.KafkaStartingException;
|
||||||
import com.rbkmoney.testcontainers.annotations.util.GenericContainerUtil;
|
import dev.vality.testcontainers.annotations.util.GenericContainerUtil;
|
||||||
|
import dev.vality.testcontainers.annotations.util.SpringApplicationPropertiesLoader;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import lombok.var;
|
|
||||||
import org.apache.kafka.clients.admin.AdminClient;
|
import org.apache.kafka.clients.admin.AdminClient;
|
||||||
import org.apache.kafka.clients.admin.AdminClientConfig;
|
import org.apache.kafka.clients.admin.AdminClientConfig;
|
||||||
import org.apache.kafka.clients.admin.NewTopic;
|
import org.apache.kafka.clients.admin.NewTopic;
|
||||||
@ -28,7 +28,6 @@ import java.util.concurrent.TimeUnit;
|
|||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadFromSpringApplicationPropertiesFile;
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -116,7 +115,7 @@ public class KafkaTestcontainerExtension implements BeforeAllCallback, AfterAllC
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<String> loadTopics(String[] topicsKeys) {
|
private List<String> loadTopics(String[] topicsKeys) {
|
||||||
return loadFromSpringApplicationPropertiesFile(Arrays.asList(topicsKeys))
|
return SpringApplicationPropertiesLoader.loadFromSpringApplicationPropertiesFile(Arrays.asList(topicsKeys))
|
||||||
.values().stream()
|
.values().stream()
|
||||||
.map(String::valueOf)
|
.map(String::valueOf)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.kafka;
|
package dev.vality.testcontainers.annotations.kafka;
|
||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -9,7 +9,7 @@ import org.testcontainers.utility.DockerImageName;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
import static dev.vality.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Фабрика по созданию контейнеров
|
* Фабрика по созданию контейнеров
|
@ -1,6 +1,9 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.kafka;
|
package dev.vality.testcontainers.annotations.kafka;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.postgresql.PostgresqlTestcontainerSingleton;
|
import dev.vality.testcontainers.annotations.KafkaSpringBootTest;
|
||||||
|
import dev.vality.testcontainers.annotations.postgresql.PostgresqlTestcontainerSingleton;
|
||||||
|
import dev.vality.testcontainers.annotations.kafka.config.KafkaConsumer;
|
||||||
|
import dev.vality.testcontainers.annotations.kafka.config.KafkaProducer;
|
||||||
import org.apache.kafka.clients.admin.AdminClient;
|
import org.apache.kafka.clients.admin.AdminClient;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
@ -15,10 +18,10 @@ import java.lang.annotation.Target;
|
|||||||
* {@link org.testcontainers.containers.KafkaContainer}, также
|
* {@link org.testcontainers.containers.KafkaContainer}, также
|
||||||
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
||||||
* <p>Аннотация требует дополнительной конфигурации {@link KafkaTestcontainerSingleton#topicsKeys()}
|
* <p>Аннотация требует дополнительной конфигурации {@link KafkaTestcontainerSingleton#topicsKeys()}
|
||||||
* <p>Пример использования {@link KafkaTestcontainerSingleton} с {@link com.rbkmoney.testcontainers.annotations.kafka.config.KafkaProducer} — в
|
* <p>Пример использования {@link KafkaTestcontainerSingleton} с {@link KafkaProducer} — в
|
||||||
* <a href="https://github.com/rbkmoney/magista/tree/master/src/test/java/com/rbkmoney/magista/config">magista</a>
|
* <a href="https://github.com/ValityDev/magista/tree/master/src/test/java/com/ValityDev/magista/config">magista</a>
|
||||||
* <p>Пример использования {@link KafkaTestcontainerSingleton} с {@link com.rbkmoney.testcontainers.annotations.kafka.config.KafkaConsumer} — в
|
* <p>Пример использования {@link KafkaTestcontainerSingleton} с {@link KafkaConsumer} — в
|
||||||
* <a href="https://github.com/rbkmoney/sink-drinker/blob/master/src/test/java/com/rbkmoney/sinkdrinker/kafka/KafkaSenderTest.java">sink-drinker</a>
|
* <a href="https://github.com/ValityDev/sink-drinker/blob/master/src/test/java/com/ValityDev/sinkdrinker/kafka/KafkaSenderTest.java">sink-drinker</a>
|
||||||
* <p><h3>Синглтон</h3>
|
* <p><h3>Синглтон</h3>
|
||||||
* <p>Аннотация является {@link KafkaTestcontainer} в режиме
|
* <p>Аннотация является {@link KafkaTestcontainer} в режиме
|
||||||
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
||||||
@ -65,7 +68,7 @@ import java.lang.annotation.Target;
|
|||||||
* ...
|
* ...
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link KafkaTestcontainerSingleton} подключается к
|
* <p>В примере ниже {@link KafkaTestcontainerSingleton} подключается к
|
||||||
* {@link PostgresqlTestcontainerSingleton} и {@link com.rbkmoney.testcontainers.annotations.KafkaSpringBootTest},
|
* {@link PostgresqlTestcontainerSingleton} и {@link KafkaSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -96,9 +99,9 @@ import java.lang.annotation.Target;
|
|||||||
* @see KafkaTestcontainer @KafkaTestcontainer
|
* @see KafkaTestcontainer @KafkaTestcontainer
|
||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see KafkaTestcontainerExtension KafkaTestcontainerExtension
|
* @see KafkaTestcontainerExtension KafkaTestcontainerExtension
|
||||||
* @see com.rbkmoney.testcontainers.annotations.kafka.config.KafkaProducer KafkaProducer
|
* @see KafkaProducer KafkaProducer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.kafka.config.KafkaConsumer KafkaConsumer
|
* @see KafkaConsumer KafkaConsumer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.KafkaSpringBootTest @KafkaSpringBootTest
|
* @see KafkaSpringBootTest @KafkaSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,9 +1,8 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.kafka.config;
|
package dev.vality.testcontainers.annotations.kafka.config;
|
||||||
|
|
||||||
import com.rbkmoney.kafka.common.serialization.AbstractThriftDeserializer;
|
import com.rbkmoney.kafka.common.serialization.AbstractThriftDeserializer;
|
||||||
import com.rbkmoney.testcontainers.annotations.kafka.KafkaTestcontainer;
|
import dev.vality.testcontainers.annotations.kafka.KafkaTestcontainer;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.var;
|
|
||||||
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
||||||
import org.apache.kafka.common.serialization.StringDeserializer;
|
import org.apache.kafka.common.serialization.StringDeserializer;
|
||||||
import org.apache.thrift.TBase;
|
import org.apache.thrift.TBase;
|
||||||
@ -20,8 +19,8 @@ import java.util.UUID;
|
|||||||
* Листенер для чтения данных из тестового трифтового топика
|
* Листенер для чтения данных из тестового трифтового топика
|
||||||
* Для получения конкретного сообщения необходимо имплементировать в тесте интерфейс
|
* Для получения конкретного сообщения необходимо имплементировать в тесте интерфейс
|
||||||
* {@link MessageListener}
|
* {@link MessageListener}
|
||||||
* <p>Пример использования {@link KafkaTestcontainer} с {@link com.rbkmoney.testcontainers.annotations.kafka.config.KafkaConsumer} — в
|
* <p>Пример использования {@link KafkaTestcontainer} с {@link KafkaConsumer} — в
|
||||||
* <a href="https://github.com/rbkmoney/sink-drinker/blob/master/src/test/java/com/rbkmoney/sinkdrinker/kafka/KafkaSenderTest.java">sink-drinker</a>
|
* <a href="https://github.com/ValityDev/sink-drinker/blob/master/src/test/java/com/ValityDev/sinkdrinker/kafka/KafkaSenderTest.java">sink-drinker</a>
|
||||||
* <p><h3>Пример</h3>
|
* <p><h3>Пример</h3>
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Autowired
|
* @Autowired
|
@ -1,6 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.kafka.config;
|
package dev.vality.testcontainers.annotations.kafka.config;
|
||||||
|
|
||||||
import com.rbkmoney.damsel.fraudbusters.Command;
|
import dev.vality.damsel.fraudbusters.Command;
|
||||||
import com.rbkmoney.kafka.common.serialization.AbstractThriftDeserializer;
|
import com.rbkmoney.kafka.common.serialization.AbstractThriftDeserializer;
|
||||||
import com.rbkmoney.machinegun.eventsink.SinkEvent;
|
import com.rbkmoney.machinegun.eventsink.SinkEvent;
|
||||||
import com.rbkmoney.payout.manager.Event;
|
import com.rbkmoney.payout.manager.Event;
|
@ -1,6 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.kafka.config;
|
package dev.vality.testcontainers.annotations.kafka.config;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.kafka.KafkaTestcontainer;
|
import dev.vality.testcontainers.annotations.kafka.KafkaTestcontainer;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.kafka.core.KafkaTemplate;
|
import org.springframework.kafka.core.KafkaTemplate;
|
||||||
@ -8,7 +8,7 @@ import org.springframework.kafka.core.KafkaTemplate;
|
|||||||
/**
|
/**
|
||||||
* Обертка над {@link KafkaTemplate}, используется для отправки сообщений в тестовый топик
|
* Обертка над {@link KafkaTemplate}, используется для отправки сообщений в тестовый топик
|
||||||
* <p>Пример использования {@link KafkaTestcontainer} с {@link KafkaProducer} — в
|
* <p>Пример использования {@link KafkaTestcontainer} с {@link KafkaProducer} — в
|
||||||
* <a href="https://github.com/rbkmoney/magista/tree/master/src/test/java/com/rbkmoney/magista/config">magista</a>
|
* <a href="https://github.com/ValityDev/magista/tree/master/src/test/java/com/ValityDev/magista/config">magista</a>
|
||||||
* <p><h3>Пример</h3>
|
* <p><h3>Пример</h3>
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Autowired
|
* @Autowired
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.kafka.config;
|
package dev.vality.testcontainers.annotations.kafka.config;
|
||||||
|
|
||||||
import com.rbkmoney.kafka.common.serialization.ThriftSerializer;
|
import com.rbkmoney.kafka.common.serialization.ThriftSerializer;
|
||||||
import org.apache.kafka.clients.producer.ProducerConfig;
|
import org.apache.kafka.clients.producer.ProducerConfig;
|
@ -1,6 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.kafka.demo;
|
package dev.vality.testcontainers.annotations.kafka.demo;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.kafka.KafkaTestcontainer;
|
import dev.vality.testcontainers.annotations.kafka.KafkaTestcontainer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* this is a demo example of filling in annotation, do not use
|
* this is a demo example of filling in annotation, do not use
|
@ -1,5 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.minio;
|
package dev.vality.testcontainers.annotations.minio;
|
||||||
|
|
||||||
|
import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@ -14,7 +15,7 @@ import java.lang.annotation.Target;
|
|||||||
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
||||||
* <p>Аннотация не требует дополнительной конфигурации
|
* <p>Аннотация не требует дополнительной конфигурации
|
||||||
* <p>Пример использования в коде — в
|
* <p>Пример использования в коде — в
|
||||||
* <a href="https://github.com/rbkmoney/file-storage/tree/master/src/test/java/com/rbkmoney/file/storage">file-storage</a>
|
* <a href="https://github.com/ValityDev/file-storage/tree/master/src/test/java/com/ValityDev/file/storage">file-storage</a>
|
||||||
* <p><h3>Примеры</h3>
|
* <p><h3>Примеры</h3>
|
||||||
* <p>В примере ниже {@link MinioTestcontainer} подключается напрямую
|
* <p>В примере ниже {@link MinioTestcontainer} подключается напрямую
|
||||||
* к {@link SpringBootTest} для проведения теста, при котором идет запись и чтение данных из хранилища с файлами
|
* к {@link SpringBootTest} для проведения теста, при котором идет запись и чтение данных из хранилища с файлами
|
||||||
@ -24,7 +25,7 @@ import java.lang.annotation.Target;
|
|||||||
* public class FileStorageTest {
|
* public class FileStorageTest {
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link MinioTestcontainer} подключается к
|
* <p>В примере ниже {@link MinioTestcontainer} подключается к
|
||||||
* {@link com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest},
|
* {@link DefaultSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -42,7 +43,7 @@ import java.lang.annotation.Target;
|
|||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see MinioTestcontainerExtension MinioTestcontainerExtension
|
* @see MinioTestcontainerExtension MinioTestcontainerExtension
|
||||||
* @see org.testcontainers.containers.GenericContainer GenericContainer
|
* @see org.testcontainers.containers.GenericContainer GenericContainer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest @DefaultSpringBootTest
|
* @see DefaultSpringBootTest @DefaultSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,8 +1,7 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.minio;
|
package dev.vality.testcontainers.annotations.minio;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.util.GenericContainerUtil;
|
import dev.vality.testcontainers.annotations.util.GenericContainerUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import lombok.var;
|
|
||||||
import org.junit.jupiter.api.extension.AfterAllCallback;
|
import org.junit.jupiter.api.extension.AfterAllCallback;
|
||||||
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
||||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
||||||
@ -17,9 +16,7 @@ import org.testcontainers.containers.GenericContainer;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.minio.MinioTestcontainerFactory.MINIO_PASSWORD;
|
import static dev.vality.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
||||||
import static com.rbkmoney.testcontainers.annotations.minio.MinioTestcontainerFactory.MINIO_USER;
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@code @MinioTestcontainerExtension} инициализирует тестконтейнер из {@link MinioTestcontainerFactory},
|
* {@code @MinioTestcontainerExtension} инициализирует тестконтейнер из {@link MinioTestcontainerFactory},
|
||||||
@ -122,8 +119,8 @@ public class MinioTestcontainerExtension implements BeforeAllCallback, AfterAllC
|
|||||||
"storage.endpoint=" + container.getContainerIpAddress() + ":" +
|
"storage.endpoint=" + container.getContainerIpAddress() + ":" +
|
||||||
container.getMappedPort(9000),
|
container.getMappedPort(9000),
|
||||||
// "storage.signingRegion=" + signingRegion,
|
// "storage.signingRegion=" + signingRegion,
|
||||||
"storage.accessKey=" + loadDefaultLibraryProperty(MINIO_USER),
|
"storage.accessKey=" + loadDefaultLibraryProperty(MinioTestcontainerFactory.MINIO_USER),
|
||||||
"storage.secretKey=" + loadDefaultLibraryProperty(MINIO_PASSWORD),
|
"storage.secretKey=" + loadDefaultLibraryProperty(MinioTestcontainerFactory.MINIO_PASSWORD),
|
||||||
// "storage.clientProtocol=" + clientProtocol,
|
// "storage.clientProtocol=" + clientProtocol,
|
||||||
// "storage.clientMaxErrorRetry=" + clientMaxErrorRetry,
|
// "storage.clientMaxErrorRetry=" + clientMaxErrorRetry,
|
||||||
"storage.bucketName=" + bucketName,
|
"storage.bucketName=" + bucketName,
|
||||||
@ -134,15 +131,15 @@ public class MinioTestcontainerExtension implements BeforeAllCallback, AfterAllC
|
|||||||
// "s3.client-protocol=" + clientProtocol,
|
// "s3.client-protocol=" + clientProtocol,
|
||||||
// "s3.client-max-error-retry=" + clientMaxErrorRetry,
|
// "s3.client-max-error-retry=" + clientMaxErrorRetry,
|
||||||
// "s3.signer-override=" + signerOverride,
|
// "s3.signer-override=" + signerOverride,
|
||||||
"s3.access-key=" + loadDefaultLibraryProperty(MINIO_USER),
|
"s3.access-key=" + loadDefaultLibraryProperty(MinioTestcontainerFactory.MINIO_USER),
|
||||||
"s3.secret-key=" + loadDefaultLibraryProperty(MINIO_PASSWORD),
|
"s3.secret-key=" + loadDefaultLibraryProperty(MinioTestcontainerFactory.MINIO_PASSWORD),
|
||||||
"s3-sdk-v2.enabled=false",
|
"s3-sdk-v2.enabled=false",
|
||||||
"s3-sdk-v2.endpoint=" + String.format("http://%s:%d/", container.getHost(),
|
"s3-sdk-v2.endpoint=" + String.format("http://%s:%d/", container.getHost(),
|
||||||
container.getMappedPort(9000)),
|
container.getMappedPort(9000)),
|
||||||
"s3-sdk-v2.bucket-name=" + bucketName,
|
"s3-sdk-v2.bucket-name=" + bucketName,
|
||||||
// "s3-sdk-v2.region=" + signingRegion,
|
// "s3-sdk-v2.region=" + signingRegion,
|
||||||
"s3-sdk-v2.access-key=" + loadDefaultLibraryProperty(MINIO_USER),
|
"s3-sdk-v2.access-key=" + loadDefaultLibraryProperty(MinioTestcontainerFactory.MINIO_USER),
|
||||||
"s3-sdk-v2.secret-key=" + loadDefaultLibraryProperty(MINIO_PASSWORD))
|
"s3-sdk-v2.secret-key=" + loadDefaultLibraryProperty(MinioTestcontainerFactory.MINIO_PASSWORD))
|
||||||
.and(properties)
|
.and(properties)
|
||||||
.applyTo(context);
|
.applyTo(context);
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.minio;
|
package dev.vality.testcontainers.annotations.minio;
|
||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -9,8 +9,8 @@ import org.testcontainers.utility.DockerImageName;
|
|||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.GenericContainerUtil.getWaitStrategy;
|
import static dev.vality.testcontainers.annotations.util.GenericContainerUtil.getWaitStrategy;
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
import static dev.vality.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Фабрика по созданию контейнеров
|
* Фабрика по созданию контейнеров
|
@ -1,5 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.minio;
|
package dev.vality.testcontainers.annotations.minio;
|
||||||
|
|
||||||
|
import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@ -14,7 +15,7 @@ import java.lang.annotation.Target;
|
|||||||
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
||||||
* <p>Аннотация не требует дополнительной конфигурации
|
* <p>Аннотация не требует дополнительной конфигурации
|
||||||
* <p>Пример использования в коде — в
|
* <p>Пример использования в коде — в
|
||||||
* <a href="https://github.com/rbkmoney/file-storage/tree/master/src/test/java/com/rbkmoney/file/storage">file-storage</a>
|
* <a href="https://github.com/ValityDev/file-storage/tree/master/src/test/java/com/ValityDev/file/storage">file-storage</a>
|
||||||
* <p><h3>Синглтон</h3>
|
* <p><h3>Синглтон</h3>
|
||||||
* <p>Аннотация является {@link MinioTestcontainer} в режиме
|
* <p>Аннотация является {@link MinioTestcontainer} в режиме
|
||||||
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
||||||
@ -32,7 +33,7 @@ import java.lang.annotation.Target;
|
|||||||
* public class FileStorageTest {
|
* public class FileStorageTest {
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link MinioTestcontainerSingleton} подключается к
|
* <p>В примере ниже {@link MinioTestcontainerSingleton} подключается к
|
||||||
* {@link com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest},
|
* {@link DefaultSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -49,7 +50,7 @@ import java.lang.annotation.Target;
|
|||||||
* @see MinioTestcontainer @MinioTestcontainer
|
* @see MinioTestcontainer @MinioTestcontainer
|
||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see org.testcontainers.containers.GenericContainer PostgreSQLContainer
|
* @see org.testcontainers.containers.GenericContainer PostgreSQLContainer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest @DefaultSpringBootTest
|
* @see DefaultSpringBootTest @DefaultSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,5 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.postgresql;
|
package dev.vality.testcontainers.annotations.postgresql;
|
||||||
|
|
||||||
|
import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@ -14,7 +15,7 @@ import java.lang.annotation.Target;
|
|||||||
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
||||||
* <p>Аннотация не требует дополнительной конфигурации
|
* <p>Аннотация не требует дополнительной конфигурации
|
||||||
* <p>Пример использования в коде — в
|
* <p>Пример использования в коде — в
|
||||||
* <a href="https://github.com/rbkmoney/magista/tree/master/src/test/java/com/rbkmoney/magista/config">magista</a>
|
* <a href="https://github.com/ValityDev/magista/tree/master/src/test/java/com/ValityDev/magista/config">magista</a>
|
||||||
* <p><h3>Примеры</h3>
|
* <p><h3>Примеры</h3>
|
||||||
* <p>В примере ниже {@link PostgresqlTestcontainer} подключается напрямую
|
* <p>В примере ниже {@link PostgresqlTestcontainer} подключается напрямую
|
||||||
* к {@link SpringBootTest} для проведения теста DAO слоя, при котором идет запись и чтение данных из базы данных
|
* к {@link SpringBootTest} для проведения теста DAO слоя, при котором идет запись и чтение данных из базы данных
|
||||||
@ -29,7 +30,7 @@ import java.lang.annotation.Target;
|
|||||||
* ...
|
* ...
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link PostgresqlTestcontainer} подключается к
|
* <p>В примере ниже {@link PostgresqlTestcontainer} подключается к
|
||||||
* {@link com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest},
|
* {@link DefaultSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -52,7 +53,7 @@ import java.lang.annotation.Target;
|
|||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see PostgresqlTestcontainerExtension PostgresqlTestcontainerExtension
|
* @see PostgresqlTestcontainerExtension PostgresqlTestcontainerExtension
|
||||||
* @see org.testcontainers.containers.PostgreSQLContainer PostgreSQLContainer
|
* @see org.testcontainers.containers.PostgreSQLContainer PostgreSQLContainer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest @DefaultSpringBootTest
|
* @see DefaultSpringBootTest @DefaultSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,8 +1,7 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.postgresql;
|
package dev.vality.testcontainers.annotations.postgresql;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.util.GenericContainerUtil;
|
import dev.vality.testcontainers.annotations.util.GenericContainerUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import lombok.var;
|
|
||||||
import org.junit.jupiter.api.extension.AfterAllCallback;
|
import org.junit.jupiter.api.extension.AfterAllCallback;
|
||||||
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
||||||
import org.junit.jupiter.api.extension.ExtensionContext;
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.postgresql;
|
package dev.vality.testcontainers.annotations.postgresql;
|
||||||
|
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -8,7 +8,7 @@ import org.testcontainers.utility.DockerImageName;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
import static dev.vality.testcontainers.annotations.util.SpringApplicationPropertiesLoader.loadDefaultLibraryProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Фабрика по созданию контейнеров
|
* Фабрика по созданию контейнеров
|
@ -1,5 +1,6 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.postgresql;
|
package dev.vality.testcontainers.annotations.postgresql;
|
||||||
|
|
||||||
|
import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -15,7 +16,7 @@ import java.lang.annotation.Target;
|
|||||||
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
* настройки контейнера будут проинициализированы в контекст тестового приложения
|
||||||
* <p>Аннотация не требует дополнительной конфигурации
|
* <p>Аннотация не требует дополнительной конфигурации
|
||||||
* <p>Пример использования в коде — в
|
* <p>Пример использования в коде — в
|
||||||
* <a href="https://github.com/rbkmoney/magista/tree/master/src/test/java/com/rbkmoney/magista/config">magista</a>
|
* <a href="https://github.com/ValityDev/magista/tree/master/src/test/java/com/ValityDev/magista/config">magista</a>
|
||||||
* <p><h3>Синглтон</h3>
|
* <p><h3>Синглтон</h3>
|
||||||
* <p>Аннотация является {@link PostgresqlTestcontainer} в режиме
|
* <p>Аннотация является {@link PostgresqlTestcontainer} в режиме
|
||||||
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
* <a href="https://ru.wikipedia.org/wiki/Одиночка_(шаблон_проектирования)">синглтона</a> —
|
||||||
@ -39,7 +40,7 @@ import java.lang.annotation.Target;
|
|||||||
* ...
|
* ...
|
||||||
* }}</pre>
|
* }}</pre>
|
||||||
* <p>В примере ниже {@link PostgresqlTestcontainerSingleton} подключается к
|
* <p>В примере ниже {@link PostgresqlTestcontainerSingleton} подключается к
|
||||||
* {@link com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest},
|
* {@link DefaultSpringBootTest},
|
||||||
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
* таким образом создается удобная обертка, которую можно использовать для набора тестов
|
||||||
* <pre> {@code
|
* <pre> {@code
|
||||||
* @Target({ElementType.TYPE})
|
* @Target({ElementType.TYPE})
|
||||||
@ -62,7 +63,7 @@ import java.lang.annotation.Target;
|
|||||||
* @see ExtendWith @ExtendWith
|
* @see ExtendWith @ExtendWith
|
||||||
* @see Transactional @Transactional
|
* @see Transactional @Transactional
|
||||||
* @see org.testcontainers.containers.PostgreSQLContainer PostgreSQLContainer
|
* @see org.testcontainers.containers.PostgreSQLContainer PostgreSQLContainer
|
||||||
* @see com.rbkmoney.testcontainers.annotations.DefaultSpringBootTest @DefaultSpringBootTest
|
* @see DefaultSpringBootTest @DefaultSpringBootTest
|
||||||
*/
|
*/
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.util;
|
package dev.vality.testcontainers.annotations.util;
|
||||||
|
|
||||||
import org.testcontainers.containers.GenericContainer;
|
import org.testcontainers.containers.GenericContainer;
|
||||||
import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;
|
import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;
|
@ -1,10 +1,9 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.util;
|
package dev.vality.testcontainers.annotations.util;
|
||||||
|
|
||||||
import com.rbkmoney.geck.serializer.kit.mock.MockMode;
|
import com.rbkmoney.geck.serializer.kit.mock.MockMode;
|
||||||
import com.rbkmoney.geck.serializer.kit.mock.MockTBaseProcessor;
|
import com.rbkmoney.geck.serializer.kit.mock.MockTBaseProcessor;
|
||||||
import com.rbkmoney.geck.serializer.kit.tbase.TBaseHandler;
|
import com.rbkmoney.geck.serializer.kit.tbase.TBaseHandler;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.var;
|
|
||||||
import org.apache.thrift.TBase;
|
import org.apache.thrift.TBase;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
@ -1,10 +1,9 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.util;
|
package dev.vality.testcontainers.annotations.util;
|
||||||
|
|
||||||
import com.rbkmoney.testcontainers.annotations.exception.IoException;
|
import dev.vality.testcontainers.annotations.exception.IoException;
|
||||||
import com.rbkmoney.testcontainers.annotations.exception.NoSuchFileException;
|
import dev.vality.testcontainers.annotations.exception.NoSuchFileException;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.var;
|
|
||||||
import org.springframework.boot.env.PropertiesPropertySourceLoader;
|
import org.springframework.boot.env.PropertiesPropertySourceLoader;
|
||||||
import org.springframework.boot.env.PropertySourceLoader;
|
import org.springframework.boot.env.PropertySourceLoader;
|
||||||
import org.springframework.boot.env.YamlPropertySourceLoader;
|
import org.springframework.boot.env.YamlPropertySourceLoader;
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.util;
|
package dev.vality.testcontainers.annotations.util;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.rbkmoney.geck.serializer.kit.json.JsonHandler;
|
import com.rbkmoney.geck.serializer.kit.json.JsonHandler;
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations.util;
|
package dev.vality.testcontainers.annotations.util;
|
||||||
|
|
||||||
import com.rbkmoney.geck.common.util.TypeUtil;
|
import com.rbkmoney.geck.common.util.TypeUtil;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
@ -13,7 +13,6 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.ZoneOffset;
|
import java.time.ZoneOffset;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import static com.rbkmoney.testcontainers.annotations.util.RandomBeans.random;
|
|
||||||
import static java.time.LocalDateTime.now;
|
import static java.time.LocalDateTime.now;
|
||||||
import static java.time.ZoneId.systemDefault;
|
import static java.time.ZoneId.systemDefault;
|
||||||
|
|
||||||
@ -33,19 +32,19 @@ public class ValuesGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Long generateLong() {
|
public static Long generateLong() {
|
||||||
return random(Long.class);
|
return RandomBeans.random(Long.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Integer generateInt() {
|
public static Integer generateInt() {
|
||||||
return random(Integer.class);
|
return RandomBeans.random(Integer.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String generateString() {
|
public static String generateString() {
|
||||||
return random(String.class);
|
return RandomBeans.random(String.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static LocalDateTime generateLocalDateTime() {
|
public static LocalDateTime generateLocalDateTime() {
|
||||||
return random(LocalDateTime.class);
|
return RandomBeans.random(LocalDateTime.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Instant generateCurrentTimePlusDay() {
|
public static Instant generateCurrentTimePlusDay() {
|
@ -1,7 +1,7 @@
|
|||||||
# Spring Test ContextCustomizerFactories
|
# Spring Test ContextCustomizerFactories
|
||||||
org.springframework.test.context.ContextCustomizerFactory=\
|
org.springframework.test.context.ContextCustomizerFactory=\
|
||||||
com.rbkmoney.testcontainers.annotations.postgresql.PostgresqlTestcontainerExtension.PostgresqlTestcontainerContextCustomizerFactory,\
|
dev.vality.testcontainers.annotations.postgresql.PostgresqlTestcontainerExtension.PostgresqlTestcontainerContextCustomizerFactory,\
|
||||||
com.rbkmoney.testcontainers.annotations.kafka.KafkaTestcontainerExtension.KafkaTestcontainerContextCustomizerFactory,\
|
dev.vality.testcontainers.annotations.kafka.KafkaTestcontainerExtension.KafkaTestcontainerContextCustomizerFactory,\
|
||||||
com.rbkmoney.testcontainers.annotations.clickhouse.ClickhouseTestcontainerExtension.ClickhouseTestcontainerContextCustomizerFactory,\
|
dev.vality.testcontainers.annotations.clickhouse.ClickhouseTestcontainerExtension.ClickhouseTestcontainerContextCustomizerFactory,\
|
||||||
com.rbkmoney.testcontainers.annotations.ceph.CephTestcontainerExtension.CephTestcontainerContextCustomizerFactory,\
|
dev.vality.testcontainers.annotations.ceph.CephTestcontainerExtension.CephTestcontainerContextCustomizerFactory,\
|
||||||
com.rbkmoney.testcontainers.annotations.minio.MinioTestcontainerExtension.MinioTestcontainerContextCustomizerFactory
|
dev.vality.testcontainers.annotations.minio.MinioTestcontainerExtension.MinioTestcontainerContextCustomizerFactory
|
||||||
|
@ -6,5 +6,5 @@
|
|||||||
|
|
||||||
<suppressions>
|
<suppressions>
|
||||||
<suppress checks="LineLength"
|
<suppress checks="LineLength"
|
||||||
files="com[\\/]rbkmoney[\\/]testcontainers[\\/]annotations[\\/].*.java"/>
|
files="dev[\\/]vality[\\/]testcontainers[\\/]annotations[\\/].*.java"/>
|
||||||
</suppressions>
|
</suppressions>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.rbkmoney.testcontainers.annotations;
|
package dev.vality.testcontainers.annotations;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
@ -5,7 +5,7 @@
|
|||||||
<root level="info">
|
<root level="info">
|
||||||
<appender-ref ref="CONSOLE"/>
|
<appender-ref ref="CONSOLE"/>
|
||||||
</root>
|
</root>
|
||||||
<logger name="com.rbkmoney.testcontainers.annotations">
|
<logger name="dev.vality.testcontainers.annotations">
|
||||||
<level value="info"/>
|
<level value="info"/>
|
||||||
</logger>
|
</logger>
|
||||||
<logger name="org.apache.kafka">
|
<logger name="org.apache.kafka">
|
||||||
|
Loading…
Reference in New Issue
Block a user