|
|
@@ -0,0 +1,65 @@
|
|
|
+package com.etotem.cfc.service;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.etotem.cfc.common.Result;
|
|
|
+import com.etotem.cfc.entity.User;
|
|
|
+import com.etotem.cfc.mapper.ButlerAssignmentMapper;
|
|
|
+import com.etotem.cfc.mapper.ButlerProfileMapper;
|
|
|
+import com.etotem.cfc.mapper.UserMapper;
|
|
|
+import org.junit.jupiter.api.BeforeEach;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+import org.springframework.test.util.ReflectionTestUtils;
|
|
|
+
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
+import static org.junit.jupiter.api.Assertions.assertNotNull;
|
|
|
+import static org.junit.jupiter.api.Assertions.assertNull;
|
|
|
+import static org.mockito.ArgumentMatchers.any;
|
|
|
+import static org.mockito.Mockito.mock;
|
|
|
+import static org.mockito.Mockito.when;
|
|
|
+
|
|
|
+/**
|
|
|
+ * B-4/F1 契约级单测:ButlerService.listAll 分页 envelope 统一为 data.records,不再返回 data.list。
|
|
|
+ */
|
|
|
+public class ButlerServiceListAllEnvelopeTest {
|
|
|
+
|
|
|
+ private ButlerService butlerService;
|
|
|
+ private UserMapper userMapper;
|
|
|
+
|
|
|
+ @BeforeEach
|
|
|
+ public void setUp() {
|
|
|
+ butlerService = new ButlerService();
|
|
|
+ userMapper = mock(UserMapper.class);
|
|
|
+ ReflectionTestUtils.setField(butlerService, "userMapper", userMapper);
|
|
|
+ ReflectionTestUtils.setField(butlerService, "butlerProfileMapper", mock(ButlerProfileMapper.class));
|
|
|
+ ReflectionTestUtils.setField(butlerService, "userService", mock(UserService.class));
|
|
|
+ ReflectionTestUtils.setField(butlerService, "butlerAssignmentMapper", mock(ButlerAssignmentMapper.class));
|
|
|
+ ReflectionTestUtils.setField(butlerService, "memberSubscriptionService", mock(MemberSubscriptionService.class));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ public void listAll_returnsRecordsEnvelope() {
|
|
|
+ Page<User> page = new Page<>(1, 20);
|
|
|
+ User u = new User();
|
|
|
+ u.setId(1001L);
|
|
|
+ u.setButlerStatus("approved");
|
|
|
+ page.setRecords(Collections.singletonList(u));
|
|
|
+ page.setTotal(1);
|
|
|
+ when(userMapper.selectPage(any(Page.class), any())).thenReturn(page);
|
|
|
+
|
|
|
+ Map<String, Object> params = new HashMap<>();
|
|
|
+ params.put("page", 1);
|
|
|
+ params.put("size", 20);
|
|
|
+ Result<Map<String, Object>> r = (Result<Map<String, Object>>) butlerService.listAll(params);
|
|
|
+
|
|
|
+ assertEquals(200, r.getCode());
|
|
|
+ assertNotNull(r.getData(), "data 不能为 null");
|
|
|
+ assertNotNull(r.getData().get("records"), "分页 envelope 必须包含 data.records");
|
|
|
+ assertNull(r.getData().get("list"), "分页 envelope 不得再返回 data.list");
|
|
|
+ assertEquals(1, ((Number) r.getData().get("total")).longValue());
|
|
|
+ }
|
|
|
+}
|