Skip to content

Commit 16f8c02

Browse files
authored
BAEL-3917: Fix the integrations tests in ddd (eugenp#9708)
1 parent cf643dc commit 16f8c02

File tree

5 files changed

+75
-9
lines changed

5 files changed

+75
-9
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.baeldung.ddd.order.config;
2+
3+
import org.bson.Document;
4+
import org.joda.money.CurrencyUnit;
5+
import org.joda.money.Money;
6+
import org.springframework.context.annotation.Bean;
7+
import org.springframework.context.annotation.Configuration;
8+
import org.springframework.core.convert.converter.Converter;
9+
import org.springframework.data.convert.ReadingConverter;
10+
import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
11+
12+
import java.math.BigDecimal;
13+
import java.util.Collections;
14+
15+
@Configuration
16+
public class CustomMongoConfiguration {
17+
18+
@Bean
19+
public MongoCustomConversions customConversions() {
20+
return new MongoCustomConversions(Collections.singletonList(DocumentToMoneyConverter.INSTANCE));
21+
}
22+
23+
@ReadingConverter
24+
enum DocumentToMoneyConverter implements Converter<Document, Money> {
25+
26+
INSTANCE;
27+
28+
@Override
29+
public Money convert(Document source) {
30+
Document money = source.get("money", Document.class);
31+
32+
return Money.of(getCurrency(money), getAmount(money));
33+
}
34+
35+
private CurrencyUnit getCurrency(Document money) {
36+
Document currency = money.get("currency", Document.class);
37+
String currencyCode = currency.getString("code");
38+
return CurrencyUnit.of(currencyCode);
39+
}
40+
41+
private BigDecimal getAmount(Document money) {
42+
String amount = money.getString("amount");
43+
return BigDecimal.valueOf(Double.parseDouble(amount));
44+
}
45+
}
46+
}

ddd/src/test/java/com/baeldung/ddd/order/jpa/PersistOrderIntegrationTest.java ddd/src/test/java/com/baeldung/ddd/order/jpa/PersistOrderLiveTest.java

+11-6
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
package com.baeldung.ddd.order.jpa;
22

3-
import static org.assertj.core.api.Assertions.assertThat;
4-
5-
import java.math.BigDecimal;
6-
import java.util.Arrays;
7-
83
import org.junit.jupiter.api.DisplayName;
94
import org.junit.jupiter.api.Test;
105
import org.springframework.beans.factory.annotation.Autowired;
116
import org.springframework.boot.test.context.SpringBootTest;
127
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
138

9+
import java.math.BigDecimal;
10+
import java.util.Arrays;
11+
12+
import static org.assertj.core.api.Assertions.assertThat;
13+
14+
/*
15+
To run this test we need to run the databases first.
16+
A dedicated docker-compose.yml file is located under the resources directory.
17+
We can run it by simple executing `docker-compose up`.
18+
*/
1419
@SpringJUnitConfig
1520
@SpringBootTest
16-
public class PersistOrderIntegrationTest {
21+
public class PersistOrderLiveTest {
1722
@Autowired
1823
private JpaOrderRepository repository;
1924

ddd/src/test/java/com/baeldung/ddd/order/mongo/OrderMongoIntegrationTest.java ddd/src/test/java/com/baeldung/ddd/order/mongo/OrderMongoLiveTest.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,14 @@
1717
import com.baeldung.ddd.order.OrderLine;
1818
import com.baeldung.ddd.order.Product;
1919

20+
/*
21+
To run this test we need to run the databases first.
22+
A dedicated docker-compose.yml file is located under the resources directory.
23+
We can run it by simple executing `docker-compose up`.
24+
*/
2025
@SpringJUnitConfig
2126
@SpringBootTest
22-
public class OrderMongoIntegrationTest {
27+
public class OrderMongoLiveTest {
2328
@Autowired
2429
private OrderMongoRepository repo;
2530

+6-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,15 @@
1818
import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository;
1919
import com.baeldung.dddhexagonalspring.infrastracture.repository.cassandra.SpringDataCassandraOrderRepository;
2020

21+
/*
22+
To run this test we need to run the databases first.
23+
A dedicated docker-compose.yml file is located under the resources directory.
24+
We can run it by simple executing `docker-compose up`.
25+
*/
2126
@SpringJUnitConfig
2227
@SpringBootTest
2328
@TestPropertySource("classpath:ddd-layers-test.properties")
24-
class CassandraDbOrderRepositoryIntegrationTest {
29+
class CassandraDbOrderRepositoryLiveTest {
2530

2631
@Autowired
2732
private SpringDataCassandraOrderRepository cassandraOrderRepository;
+6-1
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,15 @@
1818
import com.baeldung.dddhexagonalspring.domain.repository.OrderRepository;
1919
import com.baeldung.dddhexagonalspring.infrastracture.repository.mongo.SpringDataMongoOrderRepository;
2020

21+
/*
22+
To run this test we need to run the databases first.
23+
A dedicated docker-compose.yml file is located under the resources directory.
24+
We can run it by simple executing `docker-compose up`.
25+
*/
2126
@SpringJUnitConfig
2227
@SpringBootTest
2328
@TestPropertySource("classpath:ddd-layers-test.properties")
24-
class MongoDbOrderRepositoryIntegrationTest {
29+
class MongoDbOrderRepositoryLiveTest {
2530

2631
@Autowired
2732
private SpringDataMongoOrderRepository mongoOrderRepository;

0 commit comments

Comments
 (0)