fix(lastleg): search frozen warehouse code and name
This commit is contained in:
@@ -282,6 +282,26 @@ class LastlegOrderServiceTest {
|
||||
assertEquals(25, page.getValue().getSize());
|
||||
}
|
||||
|
||||
@Test
|
||||
void pageWarehouseFilterMatchesFrozenWarehouseName() {
|
||||
assertWarehouseFilter("洛杉矶仓", "洛杉矶仓", true);
|
||||
}
|
||||
|
||||
@Test
|
||||
void pageWarehouseFilterMatchesFrozenWarehouseCodeIgnoringCaseAndSpaces() {
|
||||
assertWarehouseFilter(" us-lax-01 ", "us-lax-01", true);
|
||||
}
|
||||
|
||||
@Test
|
||||
void pageWarehouseFilterMatchesPartialFrozenWarehouseCode() {
|
||||
assertWarehouseFilter("LAX-0", "LAX-0", true);
|
||||
}
|
||||
|
||||
@Test
|
||||
void pageWarehouseFilterReturnsEmptyPageWhenNothingMatches() {
|
||||
assertWarehouseFilter("WAREHOUSE-NOT-FOUND", "WAREHOUSE-NOT-FOUND", false);
|
||||
}
|
||||
|
||||
@Test
|
||||
void containerProgressPageUsesServerSideAggregatePagination() {
|
||||
var query = new LastlegOrderRequests.ContainerProgressQuery(2, 10, "CONT-", null, null);
|
||||
@@ -480,4 +500,30 @@ class LastlegOrderServiceTest {
|
||||
return order;
|
||||
}
|
||||
|
||||
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||
private void assertWarehouseFilter(String input, String normalized, boolean matched) {
|
||||
var resultPage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<LastlegOrder>(1, 10);
|
||||
LastlegOrder row = order(11L, "100", "PENDING_ASSIGNMENT", null);
|
||||
row.setOverseasWarehouseCode("US-LAX-01");
|
||||
row.setOverseasWarehouseName("洛杉矶仓");
|
||||
resultPage.setRecords(matched ? List.of(row) : List.of());
|
||||
resultPage.setTotal(matched ? 1 : 0);
|
||||
when(orders.selectPage(any(), any())).thenReturn(resultPage);
|
||||
|
||||
var result = service.page(null, new LastlegOrderRequests.Query(1L, 10L, null, null, null, null,
|
||||
null, null, null, null, input, null, null, null, null, null));
|
||||
|
||||
ArgumentCaptor<com.baomidou.mybatisplus.core.conditions.Wrapper<LastlegOrder>> filter =
|
||||
ArgumentCaptor.forClass(com.baomidou.mybatisplus.core.conditions.Wrapper.class);
|
||||
verify(orders).selectPage(any(), filter.capture());
|
||||
var wrapper = (com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<LastlegOrder>) filter.getValue();
|
||||
String warehouseSql = wrapper.getExpression().getNormal().getSqlSegment();
|
||||
assertTrue(warehouseSql.contains("LOWER(TRIM(overseas_warehouse_code))"));
|
||||
assertTrue(warehouseSql.contains("LOWER(TRIM(overseas_warehouse_name))"));
|
||||
assertTrue(wrapper.getParamNameValuePairs().containsValue(normalized),
|
||||
wrapper.getParamNameValuePairs().toString());
|
||||
assertEquals(matched ? 1 : 0, result.total());
|
||||
assertEquals(matched ? 1 : 0, result.records().size());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user