summaryrefslogtreecommitdiffstats
path: root/service/src
diff options
context:
space:
mode:
Diffstat (limited to 'service/src')
-rw-r--r--service/src/main/java/market/guess/service/LocalGuessMarketContext.java4
-rw-r--r--service/src/main/java/market/guess/service/catalog/infrastructure/adapter/LedgerMapper.java10
-rw-r--r--service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/LedgerMapper.java11
-rw-r--r--service/src/main/java/market/guess/service/domain/Event.java6
-rw-r--r--service/src/main/java/market/guess/service/domain/Market.java2
-rw-r--r--service/src/test/java/market/guess/service/catalog/infrastructure/adapter/LedgerMapperTest.java (renamed from service/src/test/java/market/guess/service/catalog/infrastructure/mapper/v2/LedgerMapperTest.java)36
6 files changed, 39 insertions, 30 deletions
diff --git a/service/src/main/java/market/guess/service/LocalGuessMarketContext.java b/service/src/main/java/market/guess/service/LocalGuessMarketContext.java
index f04324b..c85dadf 100644
--- a/service/src/main/java/market/guess/service/LocalGuessMarketContext.java
+++ b/service/src/main/java/market/guess/service/LocalGuessMarketContext.java
@@ -3,10 +3,10 @@ package market.guess.service;
3import java.math.BigDecimal; 3import java.math.BigDecimal;
4import java.time.Instant; 4import java.time.Instant;
5import market.guess.api.GuessMarketContext; 5import market.guess.api.GuessMarketContext;
6import market.guess.api.PurchaseReceiptDTO;
7import market.guess.api.Result; 6import market.guess.api.Result;
8import market.guess.api.TradeRowDTO;
9import market.guess.model.event.EventDetailDTO; 7import market.guess.model.event.EventDetailDTO;
8import market.guess.model.market.PurchaseReceiptDTO;
9import market.guess.model.market.TradeRowDTO;
10import market.guess.service.catalog.infrastructure.MarketContext; 10import market.guess.service.catalog.infrastructure.MarketContext;
11import market.guess.service.domain.Order; 11import market.guess.service.domain.Order;
12import market.guess.service.fulfillment.FulfillmentContext; 12import market.guess.service.fulfillment.FulfillmentContext;
diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/LedgerMapper.java b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/LedgerMapper.java
new file mode 100644
index 0000000..5a46540
--- /dev/null
+++ b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/LedgerMapper.java
@@ -0,0 +1,10 @@
1package market.guess.service.catalog.infrastructure.adapter;
2
3import market.guess.model.ledger.LedgerDTO;
4import market.guess.service.ledger.Ledger;
5import org.mapstruct.Mapper;
6
7@Mapper
8public interface LedgerMapper {
9 LedgerDTO ledgerToLedgerDTO(Ledger ledger);
10}
diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/LedgerMapper.java b/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/LedgerMapper.java
deleted file mode 100644
index fe0ea38..0000000
--- a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/LedgerMapper.java
+++ /dev/null
@@ -1,11 +0,0 @@
1package market.guess.service.catalog.infrastructure.mapper.v2;
2
3import market.guess.api.AccountDTO;
4import market.guess.service.ledger.Ledger;
5import org.mapstruct.Mapper;
6
7@Mapper
8public interface LedgerMapper {
9
10 AccountDTO ledgerToLedgerDTO(Ledger account);
11}
diff --git a/service/src/main/java/market/guess/service/domain/Event.java b/service/src/main/java/market/guess/service/domain/Event.java
index 1e17457..4517a4e 100644
--- a/service/src/main/java/market/guess/service/domain/Event.java
+++ b/service/src/main/java/market/guess/service/domain/Event.java
@@ -4,13 +4,13 @@ import java.math.BigDecimal;
4import java.time.Instant; 4import java.time.Instant;
5import java.util.ArrayList; 5import java.util.ArrayList;
6import java.util.List; 6import java.util.List;
7import market.guess.api.MarketDTO;
8import market.guess.api.MarketStateDTO;
9import market.guess.api.TradeRowDTO;
10import market.guess.model.event.CommissionTiming; 7import market.guess.model.event.CommissionTiming;
11import market.guess.model.event.EventStatus; 8import market.guess.model.event.EventStatus;
12import market.guess.model.event.EventSummaryDTO; 9import market.guess.model.event.EventSummaryDTO;
13import market.guess.model.ledger.LedgerType; 10import market.guess.model.ledger.LedgerType;
11import market.guess.model.market.MarketDTO;
12import market.guess.model.market.MarketStateDTO;
13import market.guess.model.market.TradeRowDTO;
14import market.guess.service.helpers.BigDecimalOptions; 14import market.guess.service.helpers.BigDecimalOptions;
15import market.guess.service.helpers.InstantOptions; 15import market.guess.service.helpers.InstantOptions;
16import market.guess.service.ledger.Ledger; 16import market.guess.service.ledger.Ledger;
diff --git a/service/src/main/java/market/guess/service/domain/Market.java b/service/src/main/java/market/guess/service/domain/Market.java
index 3ff7e2d..c5960e3 100644
--- a/service/src/main/java/market/guess/service/domain/Market.java
+++ b/service/src/main/java/market/guess/service/domain/Market.java
@@ -1,7 +1,7 @@
1package market.guess.service.domain; 1package market.guess.service.domain;
2 2
3import java.math.BigDecimal; 3import java.math.BigDecimal;
4import market.guess.api.MarketDTO; 4import market.guess.model.market.MarketDTO;
5 5
6public final class Market { 6public final class Market {
7 private final String key; 7 private final String key;
diff --git a/service/src/test/java/market/guess/service/catalog/infrastructure/mapper/v2/LedgerMapperTest.java b/service/src/test/java/market/guess/service/catalog/infrastructure/adapter/LedgerMapperTest.java
index 9e00411..976442c 100644
--- a/service/src/test/java/market/guess/service/catalog/infrastructure/mapper/v2/LedgerMapperTest.java
+++ b/service/src/test/java/market/guess/service/catalog/infrastructure/adapter/LedgerMapperTest.java
@@ -1,4 +1,4 @@
1package market.guess.service.catalog.infrastructure.mapper.v2; 1package market.guess.service.catalog.infrastructure.adapter;
2 2
3import static org.junit.Assert.assertEquals; 3import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertFalse; 4import static org.junit.Assert.assertFalse;
@@ -8,7 +8,7 @@ import static org.junit.Assert.assertTrue;
8import java.math.BigDecimal; 8import java.math.BigDecimal;
9import java.time.Instant; 9import java.time.Instant;
10import java.util.List; 10import java.util.List;
11import market.guess.api.AccountDTO; 11import market.guess.model.ledger.LedgerDTO;
12import market.guess.model.ledger.LedgerEntryDTO; 12import market.guess.model.ledger.LedgerEntryDTO;
13import market.guess.model.ledger.LedgerType; 13import market.guess.model.ledger.LedgerType;
14import market.guess.service.ledger.Ledger; 14import market.guess.service.ledger.Ledger;
@@ -29,7 +29,7 @@ public class LedgerMapperTest {
29 public void mapsOwnerAndBalanceAsStrings() { 29 public void mapsOwnerAndBalanceAsStrings() {
30 Ledger ledger = new Ledger("alice", new BigDecimal("100")); 30 Ledger ledger = new Ledger("alice", new BigDecimal("100"));
31 31
32 AccountDTO dto = mapper.ledgerToLedgerDTO(ledger); 32 LedgerDTO dto = mapper.ledgerToLedgerDTO(ledger);
33 33
34 assertEquals("alice", dto.owner()); 34 assertEquals("alice", dto.owner());
35 assertEquals("100.00", dto.balance()); 35 assertEquals("100.00", dto.balance());
@@ -39,7 +39,7 @@ public class LedgerMapperTest {
39 public void emptyEntriesMapToEmptyList() { 39 public void emptyEntriesMapToEmptyList() {
40 Ledger ledger = new Ledger("alice", new BigDecimal("0")); 40 Ledger ledger = new Ledger("alice", new BigDecimal("0"));
41 41
42 AccountDTO dto = mapper.ledgerToLedgerDTO(ledger); 42 LedgerDTO dto = mapper.ledgerToLedgerDTO(ledger);
43 43
44 assertTrue(dto.entries().isEmpty()); 44 assertTrue(dto.entries().isEmpty());
45 } 45 }
@@ -49,12 +49,20 @@ public class LedgerMapperTest {
49 Ledger ledger = new Ledger("bob", new BigDecimal("0")); 49 Ledger ledger = new Ledger("bob", new BigDecimal("0"));
50 ledger.record( 50 ledger.record(
51 new LedgerEntry( 51 new LedgerEntry(
52 1, Instant.parse("2026-01-01T00:00:00Z"), LedgerType.DEPOSIT, 52 1,
53 new BigDecimal("50.00"), new BigDecimal("50.00"), "first")); 53 Instant.parse("2026-01-01T00:00:00Z"),
54 LedgerType.DEPOSIT,
55 new BigDecimal("50.00"),
56 new BigDecimal("50.00"),
57 "first"));
54 ledger.record( 58 ledger.record(
55 new LedgerEntry( 59 new LedgerEntry(
56 2, Instant.parse("2026-01-02T00:00:00Z"), LedgerType.PURCHASE, 60 2,
57 new BigDecimal("-20.00"), new BigDecimal("30.00"), "second")); 61 Instant.parse("2026-01-02T00:00:00Z"),
62 LedgerType.PURCHASE,
63 new BigDecimal("-20.00"),
64 new BigDecimal("30.00"),
65 "second"));
58 66
59 List<LedgerEntryDTO> entries = mapper.ledgerToLedgerDTO(ledger).entries(); 67 List<LedgerEntryDTO> entries = mapper.ledgerToLedgerDTO(ledger).entries();
60 68
@@ -84,16 +92,18 @@ public class LedgerMapperTest {
84 92
85 /** 93 /**
86 * LedgerEntry.id/time and Ledger's account-blocked state have no matching AccountDTO/ 94 * LedgerEntry.id/time and Ledger's account-blocked state have no matching AccountDTO/
87 * LedgerEntryDTO source property, so MapStruct leaves them at their Java defaults. This 95 * LedgerEntryDTO source property, so MapStruct leaves them at their Java defaults. This pins that
88 * pins that known gap; once the mapper is taught to fill seq/at/blocked, update these 96 * known gap; once the mapper is taught to fill seq/at/blocked, update these assertions instead of
89 * assertions instead of deleting them. 97 * deleting them.
90 */ 98 */
91 @Test 99 @Test
92 public void unmappedTargetPropertiesFallBackToDefaults() { 100 public void unmappedTargetPropertiesFallBackToDefaults() {
93 Ledger ledger = new Ledger("dave", new BigDecimal("0")); 101 Ledger ledger = new Ledger("dave", new BigDecimal("0"));
94 ledger.record(new LedgerEntry(7, Instant.now(), LedgerType.COMMISSION, BigDecimal.ONE, BigDecimal.ONE, "n")); 102 ledger.record(
103 new LedgerEntry(
104 7, Instant.now(), LedgerType.COMMISSION, BigDecimal.ONE, BigDecimal.ONE, "n"));
95 105
96 AccountDTO dto = mapper.ledgerToLedgerDTO(ledger); 106 LedgerDTO dto = mapper.ledgerToLedgerDTO(ledger);
97 107
98 assertFalse(dto.blocked()); 108 assertFalse(dto.blocked());
99 LedgerEntryDTO entry = dto.entries().get(0); 109 LedgerEntryDTO entry = dto.entries().get(0);