diff --git a/pom.xml b/pom.xml
index 110f5584..16b8c9b5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,6 +63,7 @@
dev.vality
damsel
+ 1.674-368f05b
dev.vality.geck
diff --git a/src/test/java/dev/vality/hooker/config/KafkaTest.java b/src/test/java/dev/vality/hooker/config/KafkaTest.java
index 6120c318..1e817304 100644
--- a/src/test/java/dev/vality/hooker/config/KafkaTest.java
+++ b/src/test/java/dev/vality/hooker/config/KafkaTest.java
@@ -1,19 +1,14 @@
package dev.vality.hooker.config;
-
-import dev.vality.testcontainers.annotations.KafkaConfig;
-import dev.vality.testcontainers.annotations.kafka.KafkaTestcontainerSingleton;
-
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+import dev.vality.testcontainers.annotations.KafkaConfig;
+
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
-@KafkaTestcontainerSingleton(
- properties = {"kafka.topics.invoice.enabled=true"},
- topicsKeys = {"kafka.topics.invoice.id"})
@KafkaConfig
public @interface KafkaTest {
}
\ No newline at end of file
diff --git a/src/test/java/dev/vality/hooker/kafka/MachineEventListenerKafkaTest.java b/src/test/java/dev/vality/hooker/kafka/MachineEventListenerKafkaTest.java
index e743751f..f1c23488 100644
--- a/src/test/java/dev/vality/hooker/kafka/MachineEventListenerKafkaTest.java
+++ b/src/test/java/dev/vality/hooker/kafka/MachineEventListenerKafkaTest.java
@@ -13,7 +13,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
import org.springframework.test.context.bean.override.mockito.MockitoBean;
+import org.testcontainers.containers.KafkaContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+import org.testcontainers.utility.DockerImageName;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@@ -24,11 +30,25 @@
@KafkaTest
@PostgresqlSpringBootITest
@SpringBootTest
+@Testcontainers
class MachineEventListenerKafkaTest {
public static final String SOURCE_ID = "source_id";
public static final String SOURCE_NS = "source_ns";
+ @Container
+ private static final KafkaContainer kafkaContainer = new KafkaContainer(
+ DockerImageName.parse("confluentinc/cp-kafka:7.8.0"))
+ .withEnv("KAFKA_AUTO_CREATE_TOPICS_ENABLE", "true");
+
+ @DynamicPropertySource
+ static void kafkaProperties(DynamicPropertyRegistry registry) {
+ registry.add("kafka.bootstrap-servers", kafkaContainer::getBootstrapServers);
+ registry.add("spring.kafka.bootstrap-servers", kafkaContainer::getBootstrapServers);
+ registry.add("kafka.ssl.enabled", () -> "false");
+ registry.add("kafka.topics.invoice.enabled", () -> "true");
+ }
+
@Value("${kafka.topics.invoice.id}")
private String invoiceTopic;
diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml
new file mode 100644
index 00000000..8804d43f
--- /dev/null
+++ b/src/test/resources/application.yml
@@ -0,0 +1,42 @@
+testcontainers:
+ kafka:
+ confluent:
+ tag: '7.8.0'
+spring:
+ kafka:
+ bootstrap-servers: PLAINTEXT:9092
+ client-id: hooker
+ consumer:
+ group-id: "HookerListener"
+ enable-auto-commit: false
+ auto-offset-reset: earliest
+ max-poll-records: 20
+ datasource:
+ hikari:
+ data-source-properties:
+ search_path: hook,public
+ flyway:
+ schemas: hook
+ table: schema_version
+
+kafka:
+ topics:
+ invoice:
+ id: mg-invoice-100-2
+ enabled: false
+ concurrency: 8
+ topic:
+ webhook-dispatcher:
+ name: webhook-dispatcher-topic
+ produce:
+ enabled: true
+
+service:
+ invoicing:
+ url: http://localhost:8022/v1/processing/invoicing
+ networkTimeout: 5000
+
+limit:
+ perShop: 10
+ perParty: 5
+