|
|
@@ -0,0 +1,69 @@
|
|
|
+package com.etotem.cfc.controller.family;
|
|
|
+
|
|
|
+import com.etotem.cfc.mapper.UserMapper;
|
|
|
+import com.etotem.cfc.service.FamilyMemberService;
|
|
|
+import com.etotem.cfc.service.UnlockGateService;
|
|
|
+import com.etotem.cfc.service.UserService;
|
|
|
+import org.junit.jupiter.api.BeforeEach;
|
|
|
+import org.junit.jupiter.api.Test;
|
|
|
+import org.mockito.Mock;
|
|
|
+import org.mockito.MockitoAnnotations;
|
|
|
+import org.springframework.http.MediaType;
|
|
|
+import org.springframework.test.util.ReflectionTestUtils;
|
|
|
+import org.springframework.test.web.servlet.MockMvc;
|
|
|
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
|
|
|
+
|
|
|
+import static org.mockito.Mockito.*;
|
|
|
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
|
|
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
|
|
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
|
|
+
|
|
|
+public class FamilyMembersControllerRenameFamilyTest {
|
|
|
+
|
|
|
+ @Mock private FamilyMemberService familyMemberService;
|
|
|
+ @Mock private UserService userService;
|
|
|
+ @Mock private UnlockGateService unlockGateService;
|
|
|
+ @Mock private UserMapper userMapper;
|
|
|
+
|
|
|
+ private MockMvc mockMvc;
|
|
|
+
|
|
|
+ @BeforeEach
|
|
|
+ public void setUp() {
|
|
|
+ MockitoAnnotations.openMocks(this);
|
|
|
+ FamilyMembersController controller = new FamilyMembersController();
|
|
|
+ ReflectionTestUtils.setField(controller, "familyMemberService", familyMemberService);
|
|
|
+ ReflectionTestUtils.setField(controller, "unlockGateService", unlockGateService);
|
|
|
+ ReflectionTestUtils.setField(controller, "userService", userService);
|
|
|
+ ReflectionTestUtils.setField(controller, "userMapper", userMapper);
|
|
|
+ mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void renameFamily_success() throws Exception {
|
|
|
+ when(familyMemberService.renameFamily(1L, "新家庭")).thenReturn("新家庭");
|
|
|
+
|
|
|
+ mockMvc.perform(post("/api/family/member/rename-family")
|
|
|
+ .contentType(MediaType.APPLICATION_JSON)
|
|
|
+ .content("{\"name\":\"新家庭\"}")
|
|
|
+ .requestAttr("userId", 1L))
|
|
|
+ .andExpect(status().isOk())
|
|
|
+ .andExpect(jsonPath("$.code").value(200))
|
|
|
+ .andExpect(jsonPath("$.data").value("新家庭"));
|
|
|
+
|
|
|
+ verify(familyMemberService).renameFamily(1L, "新家庭");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void renameFamily_notAdmin_returnsError() throws Exception {
|
|
|
+ when(familyMemberService.renameFamily(1L, "新家庭"))
|
|
|
+ .thenThrow(new IllegalArgumentException("仅家庭管理员可修改家庭名称"));
|
|
|
+
|
|
|
+ mockMvc.perform(post("/api/family/member/rename-family")
|
|
|
+ .contentType(MediaType.APPLICATION_JSON)
|
|
|
+ .content("{\"name\":\"新家庭\"}")
|
|
|
+ .requestAttr("userId", 1L))
|
|
|
+ .andExpect(status().isOk())
|
|
|
+ .andExpect(jsonPath("$.code").value(500))
|
|
|
+ .andExpect(jsonPath("$.message").value("仅家庭管理员可修改家庭名称"));
|
|
|
+ }
|
|
|
+}
|