fix: handle unfiltered domestic container lists
This commit is contained in:
+4
-1
@@ -104,5 +104,8 @@ public class DomesticContainerRepository {
|
||||
}
|
||||
|
||||
private static String trim(String value) { return value == null ? null : value.trim(); }
|
||||
private static String upper(String value) { return trim(value).toUpperCase(java.util.Locale.ROOT); }
|
||||
private static String upper(String value) {
|
||||
String normalized = trim(value);
|
||||
return normalized == null ? null : normalized.toUpperCase(java.util.Locale.ROOT);
|
||||
}
|
||||
}
|
||||
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
package com.baiyue.warehouse.domesticcontainer.repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baiyue.warehouse.domesticcontainer.dto.DomesticContainerDtos;
|
||||
import com.baiyue.warehouse.domesticcontainer.entity.DomesticContainerInventoryEntity;
|
||||
import com.baiyue.warehouse.domesticcontainer.entity.DomesticContainerOrderEntity;
|
||||
import com.baiyue.warehouse.domesticcontainer.mapper.DomesticContainerInventoryMapper;
|
||||
import com.baiyue.warehouse.domesticcontainer.mapper.DomesticContainerOrderMapper;
|
||||
import org.apache.ibatis.builder.MapperBuilderAssistant;
|
||||
import org.apache.ibatis.session.Configuration;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
class DomesticContainerRepositoryTest {
|
||||
@BeforeAll
|
||||
static void initializeTableMetadata() {
|
||||
Configuration configuration = new Configuration();
|
||||
TableInfoHelper.initTableInfo(new MapperBuilderAssistant(configuration, "order-test"),
|
||||
DomesticContainerOrderEntity.class);
|
||||
TableInfoHelper.initTableInfo(new MapperBuilderAssistant(configuration, "inventory-test"),
|
||||
DomesticContainerInventoryEntity.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void pagesOrdersWithoutOptionalFilters() {
|
||||
DomesticContainerOrderMapper mapper = mock(DomesticContainerOrderMapper.class);
|
||||
DomesticContainerRepository repository = repositoryWith(mapper, mock(DomesticContainerInventoryMapper.class));
|
||||
when(mapper.selectPage(any(Page.class), any())).thenAnswer(invocation -> invocation.getArgument(0));
|
||||
|
||||
repository.pageOrders("INBOUND", new DomesticContainerDtos.OrderQuery(1, 20, null, null, null, null, null));
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
ArgumentCaptor<LambdaQueryWrapper<DomesticContainerOrderEntity>> wrapper =
|
||||
ArgumentCaptor.forClass(LambdaQueryWrapper.class);
|
||||
verify(mapper).selectPage(any(Page.class), wrapper.capture());
|
||||
wrapper.getValue().getSqlSegment();
|
||||
assertThat(wrapper.getValue().getParamNameValuePairs().values()).contains(0L, "INBOUND");
|
||||
}
|
||||
|
||||
@Test
|
||||
void pagesInventoriesWithoutOptionalFilters() {
|
||||
DomesticContainerInventoryMapper mapper = mock(DomesticContainerInventoryMapper.class);
|
||||
DomesticContainerRepository repository = repositoryWith(mock(DomesticContainerOrderMapper.class), mapper);
|
||||
when(mapper.selectPage(any(Page.class), any())).thenAnswer(invocation -> invocation.getArgument(0));
|
||||
|
||||
repository.pageInventories(new DomesticContainerDtos.InventoryQuery(1, 20, null, null, null, null));
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
ArgumentCaptor<LambdaQueryWrapper<DomesticContainerInventoryEntity>> wrapper =
|
||||
ArgumentCaptor.forClass(LambdaQueryWrapper.class);
|
||||
verify(mapper).selectPage(any(Page.class), wrapper.capture());
|
||||
wrapper.getValue().getSqlSegment();
|
||||
assertThat(wrapper.getValue().getParamNameValuePairs().values()).containsExactly(0L);
|
||||
}
|
||||
|
||||
private static DomesticContainerRepository repositoryWith(DomesticContainerOrderMapper orders,
|
||||
DomesticContainerInventoryMapper inventories) {
|
||||
DomesticContainerRepository repository = new DomesticContainerRepository();
|
||||
ReflectionTestUtils.setField(repository, "orders", orders);
|
||||
ReflectionTestUtils.setField(repository, "inventories", inventories);
|
||||
return repository;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user