diff --git a/patterns-modules/axon/pom.xml b/patterns-modules/axon/pom.xml index 4d83f8f9e6..bdf1bf2e41 100644 --- a/patterns-modules/axon/pom.xml +++ b/patterns-modules/axon/pom.xml @@ -9,9 +9,9 @@ com.baeldung - parent-boot-2 + parent-boot-3 0.0.1-SNAPSHOT - ../../parent-boot-2 + ../../parent-boot-3 @@ -74,12 +74,6 @@ ${reactor.version} test - - de.flapdoodle.embed - de.flapdoodle.embed.mongo - ${de.flapdoodle.embed.mongo.version} - test - org.awaitility awaitility @@ -95,6 +89,17 @@ reactor-netty-http test + + org.testcontainers + junit-jupiter + test + + + org.testcontainers + mongodb + ${mongodb.testcontainer.version} + test + @@ -114,9 +119,9 @@ - 4.6.3 - 3.4.8 + 4.9.3 3.6.0 + 1.17.6 \ No newline at end of file diff --git a/patterns-modules/axon/src/main/java/com/baeldung/axon/querymodel/MongoOrdersEventHandler.java b/patterns-modules/axon/src/main/java/com/baeldung/axon/querymodel/MongoOrdersEventHandler.java index 4da98a9f97..1ee7a1465a 100644 --- a/patterns-modules/axon/src/main/java/com/baeldung/axon/querymodel/MongoOrdersEventHandler.java +++ b/patterns-modules/axon/src/main/java/com/baeldung/axon/querymodel/MongoOrdersEventHandler.java @@ -18,7 +18,6 @@ import com.mongodb.client.model.IndexOptions; import com.mongodb.client.model.Indexes; import com.mongodb.client.result.UpdateResult; -import groovyjarjarantlr4.v4.runtime.misc.NotNull; import org.axonframework.config.ProcessingGroup; import org.axonframework.eventhandling.EventHandler; @@ -30,6 +29,7 @@ import org.reactivestreams.Publisher; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Profile; +import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; import reactor.core.publisher.Flux; @@ -172,7 +172,7 @@ public class MongoOrdersEventHandler implements OrdersEventHandler { .toString()); } - private Order documentToOrder(@NotNull Document document) { + private Order documentToOrder(@NonNull Document document) { Order order = new Order(document.getString(ORDER_ID_PROPERTY_NAME)); Document products = document.get(PRODUCTS_PROPERTY_NAME, Document.class); products.forEach((k, v) -> order.getProducts() diff --git a/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerLiveTest.java b/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerLiveTest.java new file mode 100644 index 0000000000..bc05b90480 --- /dev/null +++ b/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerLiveTest.java @@ -0,0 +1,36 @@ +package com.baeldung.axon.querymodel; + +import com.mongodb.client.MongoClient; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.junit.jupiter.Container; + +@DataMongoTest +public class MongoOrdersEventHandlerLiveTest extends AbstractOrdersEventHandlerUnitTest { + + @Autowired + MongoClient mongoClient; + + @Container + static MongoDBContainer mongoDBContainer = new MongoDBContainer("mongo:6.0").withExposedPorts(27017); + + @DynamicPropertySource + static void mongoDbProperties(DynamicPropertyRegistry registry) { + + mongoDBContainer.start(); + registry.add("spring.data.mongodb.uri", mongoDBContainer::getReplicaSetUrl); + } + + + + @Override + protected OrdersEventHandler getHandler() { + mongoClient.getDatabase("axonframework") + .drop(); + return new MongoOrdersEventHandler(mongoClient, emitter); + } +} diff --git a/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerUnitTest.java b/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerUnitTest.java deleted file mode 100644 index c183294dc1..0000000000 --- a/patterns-modules/axon/src/test/java/com/baeldung/axon/querymodel/MongoOrdersEventHandlerUnitTest.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.baeldung.axon.querymodel; - -import com.mongodb.client.MongoClient; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; - -@DataMongoTest -public class MongoOrdersEventHandlerUnitTest extends AbstractOrdersEventHandlerUnitTest { - - @Autowired - MongoClient mongoClient; - - @Override - protected OrdersEventHandler getHandler() { - mongoClient.getDatabase("axonframework") - .drop(); - return new MongoOrdersEventHandler(mongoClient, emitter); - } -}