diff --git a/micro-springboot/insurance-service/pom.xml b/micro-springboot/insurance-service/pom.xml
index e06f18a9..43f51451 100644
--- a/micro-springboot/insurance-service/pom.xml
+++ b/micro-springboot/insurance-service/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.11
+ 4.0.3
4.0.0
@@ -43,17 +43,17 @@
org.springdoc
springdoc-openapi-starter-webmvc-ui
- 2.8.16
+ 3.0.2
com.blazebit
- blaze-persistence-integration-spring-data-3.4
+ blaze-persistence-integration-spring-data-4.0
${blaze.version}
com.blazebit
- blaze-persistence-integration-hibernate-6.2
+ blaze-persistence-integration-hibernate-7.1
${blaze.version}
runtime
@@ -68,6 +68,11 @@
spring-boot-starter-test
test
+
+ org.springframework.boot
+ spring-boot-starter-webflux
+ test
+
org.springframework.boot
spring-boot-testcontainers
diff --git a/micro-springboot/insurance-service/src/main/java/pl/redhat/samples/insurance/InsuranceApplication.java b/micro-springboot/insurance-service/src/main/java/pl/redhat/samples/insurance/InsuranceApplication.java
index b2f01351..7c24f826 100644
--- a/micro-springboot/insurance-service/src/main/java/pl/redhat/samples/insurance/InsuranceApplication.java
+++ b/micro-springboot/insurance-service/src/main/java/pl/redhat/samples/insurance/InsuranceApplication.java
@@ -9,7 +9,6 @@
import com.blazebit.persistence.view.spi.EntityViewConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@@ -27,7 +26,7 @@ public static void main(String[] args) {
@Bean
RestTemplate restTemplate() {
- return new RestTemplateBuilder().build();
+ return new RestTemplate();
}
@PersistenceUnit
diff --git a/micro-springboot/insurance-service/src/main/resources/import.sql b/micro-springboot/insurance-service/src/main/resources/import.sql
index 27284345..0a84fc1d 100644
--- a/micro-springboot/insurance-service/src/main/resources/import.sql
+++ b/micro-springboot/insurance-service/src/main/resources/import.sql
@@ -1,7 +1,7 @@
-insert into insurance(personId, type, amount) values(1, 'MEDICAL', 1000);
-insert into insurance(personId, type, amount) values(2, 'MEDICAL', 800);
-insert into insurance(personId, type, amount) values(3, 'LIFE', 30000);
-insert into insurance(personId, type, amount) values(4, 'LIFE', 20000);
-insert into insurance(personId, type, amount) values(5, 'MEDICAL', 1500);
-insert into insurance(personId, type, amount) values(6, 'LIFE', 50000);
-insert into insurance(personId, type, amount) values(7, 'LIFE', 50000);
\ No newline at end of file
+insert into insurance(person_id, type, amount) values(1, 'MEDICAL', 1000);
+insert into insurance(person_id, type, amount) values(2, 'MEDICAL', 800);
+insert into insurance(person_id, type, amount) values(3, 'LIFE', 30000);
+insert into insurance(person_id, type, amount) values(4, 'LIFE', 20000);
+insert into insurance(person_id, type, amount) values(5, 'MEDICAL', 1500);
+insert into insurance(person_id, type, amount) values(6, 'LIFE', 50000);
+insert into insurance(person_id, type, amount) values(7, 'LIFE', 50000);
\ No newline at end of file
diff --git a/micro-springboot/insurance-service/src/test/java/pl/redhat/samples/insurance/InsuranceControllerTests.java b/micro-springboot/insurance-service/src/test/java/pl/redhat/samples/insurance/InsuranceControllerTests.java
index 66a41864..44f11f6a 100644
--- a/micro-springboot/insurance-service/src/test/java/pl/redhat/samples/insurance/InsuranceControllerTests.java
+++ b/micro-springboot/insurance-service/src/test/java/pl/redhat/samples/insurance/InsuranceControllerTests.java
@@ -3,24 +3,33 @@
import org.instancio.Instancio;
import org.instancio.Select;
import org.junit.jupiter.api.*;
-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.test.web.server.LocalServerPort;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
-import org.springframework.test.context.DynamicPropertyRegistry;
-import org.springframework.test.context.DynamicPropertySource;
+import org.springframework.test.web.reactive.server.WebTestClient;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import pl.redhat.samples.insurance.domain.Insurance;
+import java.util.List;
+
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Testcontainers
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class InsuranceControllerTests {
- @Autowired
- TestRestTemplate restTemplate;
+ @LocalServerPort
+ int port;
+
+ WebTestClient webTestClient;
+
+ @BeforeEach
+ void setUp() {
+ webTestClient = WebTestClient.bindToServer()
+ .baseUrl("http://localhost:" + port)
+ .build();
+ }
@Container
@ServiceConnection
@@ -33,9 +42,14 @@ void add() {
Insurance insurance = Instancio.of(Insurance.class)
.ignore(Select.field("id"))
.create();
- insurance = restTemplate.postForObject("/insurances", insurance, Insurance.class);
- Assertions.assertNotNull(insurance);
- Assertions.assertNotNull(insurance.getId());
+ Insurance saved = webTestClient.post().uri("/insurances")
+ .bodyValue(insurance)
+ .exchange()
+ .expectStatus().isOk()
+ .expectBody(Insurance.class)
+ .returnResult().getResponseBody();
+ Assertions.assertNotNull(saved);
+ Assertions.assertNotNull(saved.getId());
}
@Test
@@ -45,25 +59,42 @@ void updateAndGet() {
Insurance insurance = Instancio.of(Insurance.class)
.set(Select.field("id"), id)
.create();
- restTemplate.put("/insurances", insurance);
- Insurance updated = restTemplate.getForObject("/insurances/{id}", Insurance.class, id);
- Assertions.assertNotNull(insurance);
- Assertions.assertNotNull(insurance.getId());
- Assertions.assertEquals(id, insurance.getId());
+ webTestClient.put().uri("/insurances")
+ .bodyValue(insurance)
+ .exchange();
+ Insurance updated = webTestClient.get().uri("/insurances/{id}", id)
+ .exchange()
+ .expectStatus().isOk()
+ .expectBody(Insurance.class)
+ .returnResult().getResponseBody();
+ Assertions.assertNotNull(updated);
+ Assertions.assertNotNull(updated.getId());
+ Assertions.assertEquals(id, updated.getId());
}
@Test
@Order(3)
void getAll() {
- Insurance[] insurances = restTemplate.getForObject("/insurances", Insurance[].class);
- Assertions.assertEquals(1, insurances.length);
+ List insurances = webTestClient.get().uri("/insurances")
+ .exchange()
+ .expectStatus().isOk()
+ .expectBodyList(Insurance.class)
+ .hasSize(8)
+ .returnResult().getResponseBody();
+ Assertions.assertNotNull(insurances);
+ Assertions.assertEquals(8, insurances.size());
}
@Test
@Order(4)
void deleteAndGet() {
- restTemplate.delete("/insurances/{id}", 1);
- Insurance insurance = restTemplate.getForObject("/insurances/{id}", Insurance.class, 1);
+ webTestClient.delete().uri("/insurances/{id}", 1)
+ .exchange()
+ .expectStatus().isOk();
+ Insurance insurance = webTestClient.get().uri("/insurances/{id}", 1)
+ .exchange()
+ .expectBody(Insurance.class)
+ .returnResult().getResponseBody();
Assertions.assertNull(insurance);
}
diff --git a/micro-springboot/person-service/pom.xml b/micro-springboot/person-service/pom.xml
index 26ac7520..84abe316 100644
--- a/micro-springboot/person-service/pom.xml
+++ b/micro-springboot/person-service/pom.xml
@@ -5,7 +5,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.11
+ 4.0.3
4.0.0
@@ -47,17 +47,17 @@
org.springdoc
springdoc-openapi-starter-webmvc-ui
- 2.8.16
+ 3.0.2
com.blazebit
- blaze-persistence-integration-spring-data-3.4
+ blaze-persistence-integration-spring-data-4.0
${blaze.version}
com.blazebit
- blaze-persistence-integration-hibernate-6.2
+ blaze-persistence-integration-hibernate-7.1
${blaze.version}
runtime
@@ -72,6 +72,11 @@
spring-boot-starter-test
test
+
+ org.springframework.boot
+ spring-boot-starter-webflux
+ test
+
org.springframework.boot
spring-boot-testcontainers
diff --git a/micro-springboot/person-service/src/test/java/pl/redhat/samples/person/PersonControllerTests.java b/micro-springboot/person-service/src/test/java/pl/redhat/samples/person/PersonControllerTests.java
index 5a887bdf..22be9155 100644
--- a/micro-springboot/person-service/src/test/java/pl/redhat/samples/person/PersonControllerTests.java
+++ b/micro-springboot/person-service/src/test/java/pl/redhat/samples/person/PersonControllerTests.java
@@ -3,22 +3,33 @@
import org.instancio.Instancio;
import org.instancio.Select;
import org.junit.jupiter.api.*;
-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.test.web.server.LocalServerPort;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
+import org.springframework.test.web.reactive.server.WebTestClient;
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import pl.redhat.samples.person.domain.Person;
+import java.util.List;
+
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Testcontainers
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class PersonControllerTests {
- @Autowired
- TestRestTemplate restTemplate;
+ @LocalServerPort
+ int port;
+
+ WebTestClient webTestClient;
+
+ @BeforeEach
+ void setUp() {
+ webTestClient = WebTestClient.bindToServer()
+ .baseUrl("http://localhost:" + port)
+ .build();
+ }
@Container
@ServiceConnection
@@ -31,9 +42,14 @@ void add() {
Person person = Instancio.of(Person.class)
.ignore(Select.field("id"))
.create();
- person = restTemplate.postForObject("/persons", person, Person.class);
- Assertions.assertNotNull(person);
- Assertions.assertNotNull(person.getId());
+ Person saved = webTestClient.post().uri("/persons")
+ .bodyValue(person)
+ .exchange()
+ .expectStatus().isOk()
+ .expectBody(Person.class)
+ .returnResult().getResponseBody();
+ Assertions.assertNotNull(saved);
+ Assertions.assertNotNull(saved.getId());
}
@Test
@@ -43,8 +59,15 @@ void updateAndGet() {
Person person = Instancio.of(Person.class)
.set(Select.field("id"), id)
.create();
- restTemplate.put("/persons", person);
- Person updated = restTemplate.getForObject("/persons/{id}", Person.class, id);
+ webTestClient.put().uri("/persons")
+ .bodyValue(person)
+ .exchange()
+ .expectStatus().isOk();
+ Person updated = webTestClient.get().uri("/persons/{id}", id)
+ .exchange()
+ .expectStatus().isOk()
+ .expectBody(Person.class)
+ .returnResult().getResponseBody();
Assertions.assertNotNull(updated);
Assertions.assertNotNull(updated.getId());
Assertions.assertEquals(id, updated.getId());
@@ -53,15 +76,26 @@ void updateAndGet() {
@Test
@Order(3)
void getAll() {
- Person[] persons = restTemplate.getForObject("/persons", Person[].class);
- Assertions.assertEquals(1, persons.length);
+ List persons = webTestClient.get().uri("/persons")
+ .exchange()
+ .expectStatus().isOk()
+ .expectBodyList(Person.class)
+ .hasSize(1)
+ .returnResult().getResponseBody();
+ Assertions.assertNotNull(persons);
+ Assertions.assertEquals(1, persons.size());
}
@Test
@Order(4)
void deleteAndGet() {
- restTemplate.delete("/persons/{id}", 1);
- Person person = restTemplate.getForObject("/persons/{id}", Person.class, 1);
+ webTestClient.delete().uri("/persons/{id}", 1)
+ .exchange()
+ .expectStatus().isOk();
+ Person person = webTestClient.get().uri("/persons/{id}", 1)
+ .exchange()
+ .expectBody(Person.class)
+ .returnResult().getResponseBody();
Assertions.assertNull(person);
}
diff --git a/micro-springboot/pom.xml b/micro-springboot/pom.xml
index 23e9a284..b81f4671 100644
--- a/micro-springboot/pom.xml
+++ b/micro-springboot/pom.xml
@@ -21,7 +21,7 @@
1.21.4
- 1.6.11
+ 1.6.18
${project.artifactId}