This commit is contained in:
2026-10-08 17:07:57 +08:00
parent 16d2d9111a
commit c1ddb658bd
111 changed files with 2914 additions and 941 deletions
@@ -60,32 +60,9 @@ class InventoryQueryControllerTest {
verify(service).dashboard(eq(null), eq(query));
}
@Test
void balanceExportIsMaterializedBeforeReturningResponse() {
byte[] csv = "\uFEFFcustomerId\r\n10001\r\n".getBytes(java.nio.charset.StandardCharsets.UTF_8);
when(service.exportBalances("10001", query)).thenReturn(csv);
ResponseEntity<byte[]> response = controller.exportBalances(user(0L, "PLATFORM"), "10001", query);
org.junit.jupiter.api.Assertions.assertArrayEquals(csv, response.getBody());
org.junit.jupiter.api.Assertions.assertEquals("text/csv;charset=UTF-8",
response.getHeaders().getContentType().toString());
verify(service).exportBalances("10001", query);
}
@Test
void ledgerExportIsMaterializedBeforeReturningResponse() {
InventoryQueryRequests.LedgerQuery ledgerQuery = new InventoryQueryRequests.LedgerQuery(
1L, 20L, null, null, null, null, null, null, null, null, null, null, null, null, null);
byte[] csv = "\uFEFFoccurredAt\r\n".getBytes(java.nio.charset.StandardCharsets.UTF_8);
when(service.exportLedgers("10001", ledgerQuery)).thenReturn(csv);
ResponseEntity<byte[]> response = controller.exportLedgers(
user(0L, "PLATFORM"), "10001", ledgerQuery);
org.junit.jupiter.api.Assertions.assertArrayEquals(csv, response.getBody());
verify(service).exportLedgers("10001", ledgerQuery);
}
@Test
void unauthenticatedPositionDetailIsRejected() {
@@ -198,21 +198,21 @@ class InventoryQueryServiceTest {
InventoryQueryRequests.LedgerQuery query = new InventoryQueryRequests.LedgerQuery(
1L, 20L, null, null, null, null, null, null, null, null, null, null, null,
java.time.LocalDateTime.of(2026, 8, 18, 0, 0),
java.time.LocalDateTime.of(2026, 8, 17, 0, 0));
java.time.LocalDateTime.of(2026, 8, 17, 0, 0), null);
assertThrows(ResponseStatusException.class, () -> service.ledgers("100", query));
verify(mapper, never()).countLedgers(any(), any());
}
@Test
void balanceExportUsesInboundOrderPackageColumnsOnly() {
InventoryQueryRequests.BalanceQuery query = balanceQuery(null);
when(mapper.sourceBalances("100", query, 0, 10_000)).thenReturn(List.of());
String csv = new String(service.exportBalances("100", query), StandardCharsets.UTF_8);
assertTrue(csv.contains("inboundOrderNo,inboundCode,skuCode,productNameZh,productNameEn,totalPackages"));
assertFalse(csv.contains("Quantity"));
void balanceExportPagesSourceRowsInsteadOfGroupedBalances() {
var query = balanceQuery(null);
when(mapper.countSourceBalances("100", query)).thenReturn(201L);
when(mapper.sourceBalances("100", query, 0, 20)).thenReturn(List.of());
var page = service.exportBalancePage("100", query);
assertEquals(201L, page.total());
verify(mapper).sourceBalances("100", query, 0, 20);
verify(mapper, never()).countBalances(any(), any());
}
private static InventoryQueryRequests.BalanceQuery balanceQuery(String status) {
@@ -224,7 +224,7 @@ class InventoryQueryServiceTest {
InventoryQueryRequests.BalanceQuery balances = new InventoryQueryRequests.BalanceQuery(
null, null, null, null, null, null, null, null, null, null, null, null, null, null);
InventoryQueryRequests.LedgerQuery ledgers = new InventoryQueryRequests.LedgerQuery(
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);
assertEquals(1L, balances.page());
assertEquals(20L, balances.size());