diff options
Diffstat (limited to 'service/src')
| -rw-r--r-- | service/src/main/java/market/guess/service/LocalGuessMarketContext.java | 4 | ||||
| -rw-r--r-- | service/src/main/java/market/guess/service/catalog/infrastructure/adapter/LedgerMapper.java | 10 | ||||
| -rw-r--r-- | service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/LedgerMapper.java | 11 | ||||
| -rw-r--r-- | service/src/main/java/market/guess/service/domain/Event.java | 6 | ||||
| -rw-r--r-- | service/src/main/java/market/guess/service/domain/Market.java | 2 | ||||
| -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; | |||
| 3 | import java.math.BigDecimal; | 3 | import java.math.BigDecimal; |
| 4 | import java.time.Instant; | 4 | import java.time.Instant; |
| 5 | import market.guess.api.GuessMarketContext; | 5 | import market.guess.api.GuessMarketContext; |
| 6 | import market.guess.api.PurchaseReceiptDTO; | ||
| 7 | import market.guess.api.Result; | 6 | import market.guess.api.Result; |
| 8 | import market.guess.api.TradeRowDTO; | ||
| 9 | import market.guess.model.event.EventDetailDTO; | 7 | import market.guess.model.event.EventDetailDTO; |
| 8 | import market.guess.model.market.PurchaseReceiptDTO; | ||
| 9 | import market.guess.model.market.TradeRowDTO; | ||
| 10 | import market.guess.service.catalog.infrastructure.MarketContext; | 10 | import market.guess.service.catalog.infrastructure.MarketContext; |
| 11 | import market.guess.service.domain.Order; | 11 | import market.guess.service.domain.Order; |
| 12 | import market.guess.service.fulfillment.FulfillmentContext; | 12 | import 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 @@ | |||
| 1 | package market.guess.service.catalog.infrastructure.adapter; | ||
| 2 | |||
| 3 | import market.guess.model.ledger.LedgerDTO; | ||
| 4 | import market.guess.service.ledger.Ledger; | ||
| 5 | import org.mapstruct.Mapper; | ||
| 6 | |||
| 7 | @Mapper | ||
| 8 | public 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 @@ | |||
| 1 | package market.guess.service.catalog.infrastructure.mapper.v2; | ||
| 2 | |||
| 3 | import market.guess.api.AccountDTO; | ||
| 4 | import market.guess.service.ledger.Ledger; | ||
| 5 | import org.mapstruct.Mapper; | ||
| 6 | |||
| 7 | @Mapper | ||
| 8 | public 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; | |||
| 4 | import java.time.Instant; | 4 | import java.time.Instant; |
| 5 | import java.util.ArrayList; | 5 | import java.util.ArrayList; |
| 6 | import java.util.List; | 6 | import java.util.List; |
| 7 | import market.guess.api.MarketDTO; | ||
| 8 | import market.guess.api.MarketStateDTO; | ||
| 9 | import market.guess.api.TradeRowDTO; | ||
| 10 | import market.guess.model.event.CommissionTiming; | 7 | import market.guess.model.event.CommissionTiming; |
| 11 | import market.guess.model.event.EventStatus; | 8 | import market.guess.model.event.EventStatus; |
| 12 | import market.guess.model.event.EventSummaryDTO; | 9 | import market.guess.model.event.EventSummaryDTO; |
| 13 | import market.guess.model.ledger.LedgerType; | 10 | import market.guess.model.ledger.LedgerType; |
| 11 | import market.guess.model.market.MarketDTO; | ||
| 12 | import market.guess.model.market.MarketStateDTO; | ||
| 13 | import market.guess.model.market.TradeRowDTO; | ||
| 14 | import market.guess.service.helpers.BigDecimalOptions; | 14 | import market.guess.service.helpers.BigDecimalOptions; |
| 15 | import market.guess.service.helpers.InstantOptions; | 15 | import market.guess.service.helpers.InstantOptions; |
| 16 | import market.guess.service.ledger.Ledger; | 16 | import 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 @@ | |||
| 1 | package market.guess.service.domain; | 1 | package market.guess.service.domain; |
| 2 | 2 | ||
| 3 | import java.math.BigDecimal; | 3 | import java.math.BigDecimal; |
| 4 | import market.guess.api.MarketDTO; | 4 | import market.guess.model.market.MarketDTO; |
| 5 | 5 | ||
| 6 | public final class Market { | 6 | public 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 @@ | |||
| 1 | package market.guess.service.catalog.infrastructure.mapper.v2; | 1 | package market.guess.service.catalog.infrastructure.adapter; |
| 2 | 2 | ||
| 3 | import static org.junit.Assert.assertEquals; | 3 | import static org.junit.Assert.assertEquals; |
| 4 | import static org.junit.Assert.assertFalse; | 4 | import static org.junit.Assert.assertFalse; |
| @@ -8,7 +8,7 @@ import static org.junit.Assert.assertTrue; | |||
| 8 | import java.math.BigDecimal; | 8 | import java.math.BigDecimal; |
| 9 | import java.time.Instant; | 9 | import java.time.Instant; |
| 10 | import java.util.List; | 10 | import java.util.List; |
| 11 | import market.guess.api.AccountDTO; | 11 | import market.guess.model.ledger.LedgerDTO; |
| 12 | import market.guess.model.ledger.LedgerEntryDTO; | 12 | import market.guess.model.ledger.LedgerEntryDTO; |
| 13 | import market.guess.model.ledger.LedgerType; | 13 | import market.guess.model.ledger.LedgerType; |
| 14 | import market.guess.service.ledger.Ledger; | 14 | import 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); |