All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dev.vality.testcontainers.annotations.clickhouse.ClickhouseTestcontainer Maven / Gradle / Ivy

package dev.vality.testcontainers.annotations.clickhouse;

import dev.vality.testcontainers.annotations.DefaultSpringBootTest;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Аннотация {@code @ClickhouseTestcontainer} подключает и запускает тестконтейнер
 * {@link org.testcontainers.containers.ClickHouseContainer}, также
 * настройки контейнера будут проинициализированы в контекст тестового приложения
 * 

Аннотация требует дополнительной конфигурации {@link ClickhouseTestcontainer#migrations()} *

Пример использования в коде — в * fraudbusters *

Примеры

*

В примере ниже {@link ClickhouseTestcontainer} подключается напрямую * к {@link SpringBootTest} для проведения теста DAO слоя, при котором идет запись и чтение данных из базы данных *

 {@code
 * @ClickhouseTestcontainer(
 *         migrations = {
 *                 "sql/db_init.sql",
 *                 "sql/V4__create_payment.sql"})
 * @SpringBootTest
 * public class AdjustmentDaoTest {
 *
 *     @Autowired
 *     private AdjustmentDao adjustmentDao;
 *
 *   ...
 * }}
*

В примере ниже {@link ClickhouseTestcontainer} подключается к * {@link DefaultSpringBootTest}, * таким образом создается удобная обертка, которую можно использовать для набора тестов *

 {@code
 * @Target({ElementType.TYPE})
 * @Retention(RetentionPolicy.RUNTIME)
 * @ClickhouseTestcontainer(
 *         migrations = {
 *                 "sql/db_init.sql",
 *                 "sql/V4__create_payment.sql"})
 * @DefaultSpringBootTest
 * public @interface ClickhouseSpringBootITest {
 *
 * }}
*
 {@code
 * @ClickhouseSpringBootITest
 * public class AdjustmentDaoTest {
 *
 *     @Autowired
 *     private AdjustmentDao adjustmentDao;
 *     ...
 * }}
* * @see ClickhouseTestcontainerSingleton @ClickhouseTestcontainerSingleton * @see ExtendWith @ExtendWith * @see ClickhouseTestcontainerExtension ClickhouseTestcontainerExtension * @see org.testcontainers.containers.ClickHouseContainer ClickHouseContainer * @see DefaultSpringBootTest @DefaultSpringBootTest */ @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @ExtendWith(ClickhouseTestcontainerExtension.class) public @interface ClickhouseTestcontainer { /** * Аналогичный параметр как у аннотации {@link SpringBootTest#properties()} *

* пример — properties = {"сlickhouse.make.happy=true",...} */ String[] properties() default {}; /** * Обязательный параметр — здесь указываются файлы с миграциями для кликхауза *

* пример — migrations = {"sql/db_init.sql","sql/V1__create_payment.sql",...} */ String[] migrations(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy