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 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