diff --git a/pom.xml b/pom.xml index 798c8fc..629326c 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.4.7 + 4.0.5 org.acme @@ -31,8 +31,13 @@ spring-boot-starter-validation - org.springframework.kafka - spring-kafka + org.springframework.boot + spring-boot-starter-kafka + + + + com.fasterxml.jackson.core + jackson-databind @@ -66,34 +71,23 @@ org.testcontainers - kafka - 1.21.4 + testcontainers-kafka test org.testcontainers - redpanda - 1.21.4 + testcontainers-redpanda test org.testcontainers - junit-jupiter - 1.21.4 + testcontainers-junit-jupiter test - org.junit.platform junit-platform-launcher - 1.11.4 - test - - - org.junit.vintage - junit-vintage-engine - 5.11.4 test diff --git a/src/test/java/org/acme/order/ContainersConfiguration.java b/src/test/java/org/acme/order/ContainersConfiguration.java index 9c63790..14172bc 100644 --- a/src/test/java/org/acme/order/ContainersConfiguration.java +++ b/src/test/java/org/acme/order/ContainersConfiguration.java @@ -7,7 +7,7 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnection; import org.springframework.context.annotation.Bean; import org.springframework.test.context.DynamicPropertyRegistrar; -import org.testcontainers.containers.KafkaContainer; +import org.testcontainers.kafka.ConfluentKafkaContainer; import org.testcontainers.containers.Network; import org.testcontainers.utility.DockerImageName; @@ -18,16 +18,16 @@ public class ContainersConfiguration { @Bean @ServiceConnection - KafkaContainer kafkaContainer() { - KafkaContainer kafkaContainer = new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:7.5.0")) + ConfluentKafkaContainer kafkaContainer() { + ConfluentKafkaContainer kafkaContainer = new ConfluentKafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:7.5.0")) .withNetwork(network) .withNetworkAliases("kafka") - .withListener(() -> "kafka:19092"); + .withListener("kafka:19092"); return kafkaContainer; } @Bean - MicrocksContainersEnsemble microcksEnsemble(KafkaContainer kafkaContainer) { + MicrocksContainersEnsemble microcksEnsemble(ConfluentKafkaContainer kafkaContainer) { // Uncomment these lines (36-38) if you want to use the native image of Microcks // and comment the next MicrocksContainersEnsemble declaration line (40). // DockerImageName nativeImage = DockerImageName.parse("quay.io/microcks/microcks-uber:1.11.2-native") diff --git a/src/test/java/org/acme/order/api/OrderControllerContractTests.java b/src/test/java/org/acme/order/api/OrderControllerContractTests.java index cd19859..f58a741 100644 --- a/src/test/java/org/acme/order/api/OrderControllerContractTests.java +++ b/src/test/java/org/acme/order/api/OrderControllerContractTests.java @@ -6,8 +6,9 @@ import io.github.microcks.testcontainers.model.TestRunnerType; import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; import org.acme.order.BaseIntegrationTest; import org.junit.jupiter.api.Test; @@ -31,7 +32,9 @@ void testOpenAPIContract() throws Exception { TestResult testResult = microcksEnsemble.getMicrocksContainer().testEndpoint(testRequest); // You may inspect complete response object with following: - ObjectMapper mapper = new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL); + ObjectMapper mapper = JsonMapper.builder() + .changeDefaultPropertyInclusion(incl -> incl.withValueInclusion(JsonInclude.Include.NON_NULL)) + .build(); System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(testResult)); assertTrue(testResult.isSuccess()); @@ -50,7 +53,9 @@ void testOpenAPIContractAndBusinessConformance() throws Exception { TestResult testResult = microcksEnsemble.getMicrocksContainer().testEndpoint(testRequest); // You may inspect complete response object with following: - ObjectMapper mapper = new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL); + ObjectMapper mapper = JsonMapper.builder() + .changeDefaultPropertyInclusion(incl -> incl.withValueInclusion(JsonInclude.Include.NON_NULL)) + .build(); System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(testResult)); assertTrue(testResult.isSuccess()); diff --git a/src/test/java/org/acme/order/api/OrderControllerPostmanContractTests.java b/src/test/java/org/acme/order/api/OrderControllerPostmanContractTests.java index ec91eea..fdb00f6 100644 --- a/src/test/java/org/acme/order/api/OrderControllerPostmanContractTests.java +++ b/src/test/java/org/acme/order/api/OrderControllerPostmanContractTests.java @@ -5,7 +5,8 @@ import io.github.microcks.testcontainers.model.TestRunnerType; import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.json.JsonMapper; import org.acme.order.BaseIntegrationTest; import org.junit.jupiter.api.Test; @@ -28,7 +29,9 @@ void testPostmanCollectionContract() throws Exception { // You may inspect complete response object with following: //System.err.println(microcksEnsemble.getMicrocksContainer().getLogs()); //System.err.println(microcksEnsemble.getPostmanContainer().getLogs()); - ObjectMapper mapper = new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL); + ObjectMapper mapper = JsonMapper.builder() + .changeDefaultPropertyInclusion(incl -> incl.withValueInclusion(JsonInclude.Include.NON_NULL)) + .build(); System.err.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(testResult)); assertTrue(testResult.isSuccess()); diff --git a/src/test/java/org/acme/order/service/OrderServiceTests.java b/src/test/java/org/acme/order/service/OrderServiceTests.java index 2abfb5f..454fb31 100644 --- a/src/test/java/org/acme/order/service/OrderServiceTests.java +++ b/src/test/java/org/acme/order/service/OrderServiceTests.java @@ -6,8 +6,8 @@ import io.github.microcks.testcontainers.model.TestRunnerType; import io.github.microcks.testcontainers.model.UnidirectionalEvent; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.type.TypeReference; +import tools.jackson.databind.json.JsonMapper; import org.acme.order.BaseIntegrationTest; import org.acme.order.service.model.Order; import org.acme.order.service.model.OrderInfo; @@ -17,7 +17,7 @@ import org.apache.kafka.clients.admin.NewTopic; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.testcontainers.containers.KafkaContainer; +import org.testcontainers.kafka.ConfluentKafkaContainer; import java.time.Duration; import java.util.List; @@ -31,7 +31,7 @@ class OrderServiceTests extends BaseIntegrationTest { @Autowired - KafkaContainer kafkaContainer; + ConfluentKafkaContainer kafkaContainer; @Autowired OrderService service; @@ -83,7 +83,7 @@ void testEventIsPublishedWhenOrderIsCreated() { assertEquals(1, events.size()); EventMessage message = events.get(0).getEventMessage(); - Map messageMap = new ObjectMapper().readValue(message.getContent(), new TypeReference<>() {}); + Map messageMap = new JsonMapper().readValue(message.getContent(), new TypeReference<>() {}); // Properties from the event message should match the order. assertEquals("Creation", messageMap.get("changeReason"));