diff --git a/.circleci/config.yml b/.circleci/config.yml
index 83c81c6..a63c713 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -8,12 +8,15 @@ jobs:
- checkout
- run:
name: Analyze on SonarCloud
- command: mvn verify sonar:sonar
+ command: mvn verify sonar:sonar -DskipTests
executors:
- jdk:
- docker:
- - image: 'cimg/openjdk:21.0.6'
+ machine_executor_amd64:
+ machine:
+ image: ubuntu-2204:current
+ environment:
+ architecture: "amd64"
+ platform: "linux/amd64"
orbs:
maven: circleci/maven@2.0.0
@@ -22,6 +25,6 @@ workflows:
maven_test:
jobs:
- maven/test:
- executor: jdk
+ executor: machine_executor_amd64
- build:
context: SonarCloud
\ No newline at end of file
diff --git a/account-service/pom.xml b/account-service/pom.xml
index 00b3707..400f139 100644
--- a/account-service/pom.xml
+++ b/account-service/pom.xml
@@ -34,9 +34,13 @@
logstash-logback-encoder
8.0
+
+ io.projectreactor
+ reactor-core-micrometer
+
io.micrometer
- micrometer-tracing-bridge-otel
+ micrometer-tracing-bridge-brave
org.springframework.boot
diff --git a/account-service/src/test/java/pl/piomin/services/account/OrderReceiverTest.java b/account-service/src/test/java/pl/piomin/services/account/OrderReceiverTest.java
index fe7eee7..9ffa6bf 100644
--- a/account-service/src/test/java/pl/piomin/services/account/OrderReceiverTest.java
+++ b/account-service/src/test/java/pl/piomin/services/account/OrderReceiverTest.java
@@ -7,6 +7,7 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.cloud.stream.binder.test.EnableTestBinder;
import org.springframework.cloud.stream.binder.test.InputDestination;
import org.springframework.cloud.stream.binder.test.OutputDestination;
import org.springframework.integration.support.MessageBuilder;
@@ -20,6 +21,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@EnableTestBinder
public class OrderReceiverTest {
private static final Logger LOGGER = LoggerFactory.getLogger(OrderReceiverTest.class);
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..3b95b1d
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,7 @@
+version: "3.7"
+services:
+ rabbitmq:
+ container_name: rabbitmq
+ image: rabbitmq:4
+ ports:
+ - "5672:5672"
\ No newline at end of file
diff --git a/order-service/pom.xml b/order-service/pom.xml
index b703e49..6d12090 100644
--- a/order-service/pom.xml
+++ b/order-service/pom.xml
@@ -17,6 +17,10 @@
org.springframework.cloud
spring-cloud-stream
+
+ org.springframework.cloud
+ spring-cloud-starter-stream-rabbit
+
org.springframework.boot
spring-boot-starter-web
@@ -25,6 +29,10 @@
org.springframework.boot
spring-boot-starter-actuator
+
+ io.projectreactor
+ reactor-core-micrometer
+
net.logstash.logback
logstash-logback-encoder
@@ -32,7 +40,7 @@
io.micrometer
- micrometer-tracing-bridge-otel
+ micrometer-tracing-bridge-brave
org.springframework.boot
@@ -49,6 +57,21 @@
messaging-common
${project.version}
+
+ org.testcontainers
+ rabbitmq
+ test
+
+
+ org.springframework.boot
+ spring-boot-testcontainers
+ test
+
+
+ org.testcontainers
+ junit-jupiter
+ test
+
diff --git a/order-service/src/test/java/pl/piomin/services/order/OrderControllerTest.java b/order-service/src/test/java/pl/piomin/services/order/OrderControllerTest.java
index a61b1fd..edb616d 100644
--- a/order-service/src/test/java/pl/piomin/services/order/OrderControllerTest.java
+++ b/order-service/src/test/java/pl/piomin/services/order/OrderControllerTest.java
@@ -4,6 +4,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
+import org.testcontainers.containers.RabbitMQContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
import pl.piomin.services.messaging.Order;
import pl.piomin.services.messaging.OrderStatus;
@@ -14,11 +18,17 @@
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@Testcontainers
public class OrderControllerTest {
@Autowired
TestRestTemplate template;
+ @Container
+ @ServiceConnection
+ static final RabbitMQContainer rabbit = new RabbitMQContainer("rabbitmq:4")
+ .withExposedPorts(5672);
+
@Test
public void testOrder() throws InterruptedException {
Order order = new Order();
diff --git a/pom.xml b/pom.xml
index 39093da..4dcb793 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,6 +8,7 @@
21
+ 1.21.0
piomin_sample-message-driven-microservices
piomin
https://sonarcloud.io
@@ -16,7 +17,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.3.5
+ 3.4.3
@@ -25,7 +26,14 @@
org.springframework.cloud
spring-cloud-dependencies
- 2023.0.1
+ 2024.0.1
+ pom
+ import
+
+
+ org.testcontainers
+ testcontainers-bom
+ ${testcontainers.version}
pom
import
diff --git a/product-service/pom.xml b/product-service/pom.xml
index 24c795c..fbae578 100644
--- a/product-service/pom.xml
+++ b/product-service/pom.xml
@@ -28,7 +28,11 @@
io.micrometer
- micrometer-tracing-bridge-otel
+ micrometer-tracing-bridge-brave
+
+
+ io.projectreactor
+ reactor-core-micrometer
org.springframework.boot
diff --git a/product-service/src/test/java/pl/piomin/services/product/OrderReceiverTest.java b/product-service/src/test/java/pl/piomin/services/product/OrderReceiverTest.java
index b2b6495..96ba257 100644
--- a/product-service/src/test/java/pl/piomin/services/product/OrderReceiverTest.java
+++ b/product-service/src/test/java/pl/piomin/services/product/OrderReceiverTest.java
@@ -7,6 +7,7 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.cloud.stream.binder.test.EnableTestBinder;
import org.springframework.cloud.stream.binder.test.InputDestination;
import org.springframework.cloud.stream.binder.test.OutputDestination;
import org.springframework.integration.support.MessageBuilder;
@@ -20,6 +21,7 @@
import static org.junit.jupiter.api.Assertions.assertNotNull;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@EnableTestBinder
public class OrderReceiverTest {
private static final Logger LOGGER = LoggerFactory.getLogger(OrderReceiverTest.class);