|
@@ -18,6 +18,9 @@ import org.apache.ibatis.builder.MapperBuilderAssistant;
|
|
|
import org.junit.jupiter.api.BeforeAll;
|
|
import org.junit.jupiter.api.BeforeAll;
|
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
|
+import org.junit.jupiter.params.ParameterizedTest;
|
|
|
|
|
+import org.junit.jupiter.params.provider.NullAndEmptySource;
|
|
|
|
|
+import org.junit.jupiter.params.provider.ValueSource;
|
|
|
import org.mockito.MockedStatic;
|
|
import org.mockito.MockedStatic;
|
|
|
import org.mockito.ArgumentCaptor;
|
|
import org.mockito.ArgumentCaptor;
|
|
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
import org.springframework.test.util.ReflectionTestUtils;
|
|
@@ -111,6 +114,34 @@ class OrderListPaymentFilterTest {
|
|
|
assertEquals(1, Collections.frequency(parameters, "1"));
|
|
assertEquals(1, Collections.frequency(parameters, "1"));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @ParameterizedTest
|
|
|
|
|
+ @NullAndEmptySource
|
|
|
|
|
+ @ValueSource(strings = {"pending", "preparing", "ready", "completed", "cancelled", "refund"})
|
|
|
|
|
+ void merchantListRequiresAssignedRiderForDeliveryAcrossAllTabs(String tab) {
|
|
|
|
|
+ IPosOrderService orders = mock(IPosOrderService.class);
|
|
|
|
|
+ IInfoUserService users = mock(IInfoUserService.class);
|
|
|
|
|
+ PosOrderShOprateController controller = new PosOrderShOprateController();
|
|
|
|
|
+ ReflectionTestUtils.setField(controller, "posOrderService", orders);
|
|
|
|
|
+ ReflectionTestUtils.setField(controller, "infoUserService", users);
|
|
|
|
|
+ InfoUser merchant = new InfoUser();
|
|
|
|
|
+ merchant.setUserId(801L);
|
|
|
|
|
+ merchant.setUserType("3");
|
|
|
|
|
+ auth.when(AuthContext::requireUserId).thenReturn(801L);
|
|
|
|
|
+ when(users.getOne(any())).thenReturn(merchant);
|
|
|
|
|
+ when(orders.page(any(Page.class), any(Wrapper.class))).thenReturn(new Page<>());
|
|
|
|
|
+
|
|
|
|
|
+ controller.orderList(tokenFor(801L), 1, 10, tab, null, null);
|
|
|
|
|
+
|
|
|
|
|
+ LambdaQueryWrapper<PosOrder> query = capturedQuery(orders);
|
|
|
|
|
+ String sql = query.getSqlSegment();
|
|
|
|
|
+ for (var entry : query.getParamNameValuePairs().entrySet()) {
|
|
|
|
|
+ sql = sql.replace("#{ew.paramNameValuePairs." + entry.getKey() + "}",
|
|
|
|
|
+ String.valueOf(entry.getValue()));
|
|
|
|
|
+ }
|
|
|
|
|
+ // 非外送订单保留;外送须已接单并有骑手,取餐和送达后的订单仍可查询。
|
|
|
|
|
+ assertTrue(sql.contains("sh_id = 801 AND (type <> 0 OR (delivery_status IN (1,2,3) AND qs_id IS NOT NULL))"), sql);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@BeforeEach
|
|
@BeforeEach
|
|
|
void setUpMessages() {
|
|
void setUpMessages() {
|
|
|
messages = mockStatic(MessageUtils.class);
|
|
messages = mockStatic(MessageUtils.class);
|