|
|
@@ -8,7 +8,6 @@ import com.etotem.cfc.service.FamilyMemberService;
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
|
|
-import org.springframework.mock.web.MockHttpServletRequest;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.*;
|
|
|
@@ -31,13 +30,7 @@ public class FamilyMembersControllerTest {
|
|
|
@MockBean
|
|
|
private FamilyMemberService familyMemberService;
|
|
|
|
|
|
- // ==================== mock helpers ====================
|
|
|
-
|
|
|
- private MockHttpServletRequest mockRequest(Long userId) {
|
|
|
- MockHttpServletRequest request = new MockHttpServletRequest();
|
|
|
- request.setAttribute("userId", userId);
|
|
|
- return request;
|
|
|
- }
|
|
|
+ // ==================== helpers ====================
|
|
|
|
|
|
private FamilyMemberVO mockMemberVO(Long id, String nickname, String effectiveRole) {
|
|
|
FamilyMemberVO vo = new FamilyMemberVO();
|
|
|
@@ -59,36 +52,36 @@ public class FamilyMembersControllerTest {
|
|
|
|
|
|
@Test
|
|
|
public void addMember_Success() {
|
|
|
- MockHttpServletRequest request = mockRequest(1L);
|
|
|
+ Long userId = 1L;
|
|
|
AddFamilyMemberDTO dto = mockAddDTO("小明", "child");
|
|
|
|
|
|
- when(familyMemberService.addMember(eq(1L), any(AddFamilyMemberDTO.class)))
|
|
|
+ when(familyMemberService.addMember(eq(userId), any(AddFamilyMemberDTO.class)))
|
|
|
.thenReturn(mockMemberVO(100L, "小明", "child"));
|
|
|
|
|
|
- Result<FamilyMemberVO> result = controller.addMember(request, dto);
|
|
|
+ Result<FamilyMemberVO> result = controller.addMember(dto, userId);
|
|
|
assertEquals(200, result.getCode());
|
|
|
assertEquals("小明", result.getData().getNickname());
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void addMember_NotLoggedIn() {
|
|
|
- MockHttpServletRequest request = new MockHttpServletRequest();
|
|
|
+ Long userId = null;
|
|
|
AddFamilyMemberDTO dto = mockAddDTO("小明", "child");
|
|
|
|
|
|
- Result<FamilyMemberVO> result = controller.addMember(request, dto);
|
|
|
+ Result<FamilyMemberVO> result = controller.addMember(dto, userId);
|
|
|
assertEquals(500, result.getCode());
|
|
|
assertTrue(result.getMessage().contains("请先登录"));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void addMember_IllegalArgument() {
|
|
|
- MockHttpServletRequest request = mockRequest(1L);
|
|
|
+ Long userId = 1L;
|
|
|
AddFamilyMemberDTO dto = mockAddDTO("", "");
|
|
|
|
|
|
- when(familyMemberService.addMember(eq(1L), any(AddFamilyMemberDTO.class)))
|
|
|
+ when(familyMemberService.addMember(eq(userId), any(AddFamilyMemberDTO.class)))
|
|
|
.thenThrow(new IllegalArgumentException("辈分等级不能为空"));
|
|
|
|
|
|
- Result<FamilyMemberVO> result = controller.addMember(request, dto);
|
|
|
+ Result<FamilyMemberVO> result = controller.addMember(dto, userId);
|
|
|
assertEquals(500, result.getCode());
|
|
|
assertTrue(result.getMessage().contains("辈分等级不能为空"));
|
|
|
}
|
|
|
@@ -97,23 +90,23 @@ public class FamilyMembersControllerTest {
|
|
|
|
|
|
@Test
|
|
|
public void listMembers_Success() {
|
|
|
- MockHttpServletRequest request = mockRequest(1L);
|
|
|
+ Long userId = 1L;
|
|
|
List<FamilyMemberVO> members = Arrays.asList(
|
|
|
mockMemberVO(1L, "爸爸", "parent"),
|
|
|
mockMemberVO(2L, "妈妈", "parent")
|
|
|
);
|
|
|
|
|
|
- when(familyMemberService.listMembers(1L)).thenReturn(members);
|
|
|
+ when(familyMemberService.listMembers(userId)).thenReturn(members);
|
|
|
|
|
|
- Result<List<FamilyMemberVO>> result = controller.listMembers(request);
|
|
|
+ Result<List<FamilyMemberVO>> result = controller.listMembers(userId);
|
|
|
assertEquals(200, result.getCode());
|
|
|
assertEquals(2, result.getData().size());
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void listMembers_NotLoggedIn() {
|
|
|
- MockHttpServletRequest request = new MockHttpServletRequest();
|
|
|
- Result<List<FamilyMemberVO>> result = controller.listMembers(request);
|
|
|
+ Long userId = null;
|
|
|
+ Result<List<FamilyMemberVO>> result = controller.listMembers(userId);
|
|
|
assertEquals(500, result.getCode());
|
|
|
}
|
|
|
|
|
|
@@ -121,26 +114,26 @@ public class FamilyMembersControllerTest {
|
|
|
|
|
|
@Test
|
|
|
public void switchToMember_Success() {
|
|
|
- MockHttpServletRequest request = mockRequest(1L);
|
|
|
+ Long userId = 1L;
|
|
|
Map<String, Long> body = new HashMap<>();
|
|
|
body.put("memberId", 2L);
|
|
|
|
|
|
SwitchMemberVO vo = new SwitchMemberVO();
|
|
|
vo.setMemberId(2L);
|
|
|
vo.setNickname("小明");
|
|
|
- when(familyMemberService.switchToMember(1L, 2L)).thenReturn(vo);
|
|
|
+ when(familyMemberService.switchToMember(userId, 2L)).thenReturn(vo);
|
|
|
|
|
|
- Result<SwitchMemberVO> result = controller.switchToMember(request, body);
|
|
|
+ Result<SwitchMemberVO> result = controller.switchToMember(body, userId);
|
|
|
assertEquals(200, result.getCode());
|
|
|
assertEquals(2L, result.getData().getMemberId().longValue());
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void switchToMember_MissingMemberId() {
|
|
|
- MockHttpServletRequest request = mockRequest(1L);
|
|
|
+ Long userId = 1L;
|
|
|
Map<String, Long> body = new HashMap<>();
|
|
|
|
|
|
- Result<SwitchMemberVO> result = controller.switchToMember(request, body);
|
|
|
+ Result<SwitchMemberVO> result = controller.switchToMember(body, userId);
|
|
|
assertEquals(500, result.getCode());
|
|
|
assertTrue(result.getMessage().contains("缺少成员ID"));
|
|
|
}
|
|
|
@@ -149,23 +142,23 @@ public class FamilyMembersControllerTest {
|
|
|
|
|
|
@Test
|
|
|
public void kickMember_Success() {
|
|
|
- MockHttpServletRequest request = mockRequest(1L);
|
|
|
+ Long userId = 1L;
|
|
|
Map<String, Long> body = new HashMap<>();
|
|
|
body.put("memberId", 3L);
|
|
|
|
|
|
- doNothing().when(familyMemberService).kickMember(1L, 3L);
|
|
|
+ doNothing().when(familyMemberService).kickMember(userId, 3L);
|
|
|
|
|
|
- Result<String> result = controller.kickMember(request, body);
|
|
|
+ Result<String> result = controller.kickMember(body, userId);
|
|
|
assertEquals(200, result.getCode());
|
|
|
assertTrue(result.getData().contains("踢出成功"));
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void kickMember_MissingMemberId() {
|
|
|
- MockHttpServletRequest request = mockRequest(1L);
|
|
|
+ Long userId = 1L;
|
|
|
Map<String, Long> body = new HashMap<>();
|
|
|
|
|
|
- Result<String> result = controller.kickMember(request, body);
|
|
|
+ Result<String> result = controller.kickMember(body, userId);
|
|
|
assertEquals(500, result.getCode());
|
|
|
assertTrue(result.getMessage().contains("缺少成员ID"));
|
|
|
}
|
|
|
@@ -174,25 +167,25 @@ public class FamilyMembersControllerTest {
|
|
|
|
|
|
@Test
|
|
|
public void updateMember_Success() {
|
|
|
- MockHttpServletRequest request = mockRequest(1L);
|
|
|
+ Long userId = 1L;
|
|
|
Map<String, Object> body = new HashMap<>();
|
|
|
body.put("memberId", 5L);
|
|
|
body.put("nickname", "新名字");
|
|
|
|
|
|
- when(familyMemberService.updateMember(eq(1L), eq(5L), any(AddFamilyMemberDTO.class)))
|
|
|
+ when(familyMemberService.updateMember(eq(userId), eq(5L), any(AddFamilyMemberDTO.class)))
|
|
|
.thenReturn(mockMemberVO(5L, "新名字", "parent"));
|
|
|
|
|
|
- Result<FamilyMemberVO> result = controller.updateMember(request, body);
|
|
|
+ Result<FamilyMemberVO> result = controller.updateMember(body, userId);
|
|
|
assertEquals(200, result.getCode());
|
|
|
assertEquals("新名字", result.getData().getNickname());
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
public void updateMember_MissingMemberId() {
|
|
|
- MockHttpServletRequest request = mockRequest(1L);
|
|
|
+ Long userId = 1L;
|
|
|
Map<String, Object> body = new HashMap<>();
|
|
|
|
|
|
- Result<FamilyMemberVO> result = controller.updateMember(request, body);
|
|
|
+ Result<FamilyMemberVO> result = controller.updateMember(body, userId);
|
|
|
assertEquals(500, result.getCode());
|
|
|
assertTrue(result.getMessage().contains("缺少成员ID"));
|
|
|
}
|