user module API

PUT /user/signature
PUT /user/password
PUT /user/avatar

Change-Id: I67e030092bbcfeba6118b26b013b9735a09f2d93
diff --git a/src/test/java/com/g9/g9backend/controller/UserControllerTest.java b/src/test/java/com/g9/g9backend/controller/UserControllerTest.java
index bec8b11..d390dea 100644
--- a/src/test/java/com/g9/g9backend/controller/UserControllerTest.java
+++ b/src/test/java/com/g9/g9backend/controller/UserControllerTest.java
@@ -405,4 +405,63 @@
                         .param("userId", "1"))
                 .andExpect(status().isOk());
     }
+
+    // 修改签名
+    @Test
+    public void testModifySignature() throws Exception {
+
+        User user = new User();
+        user.setUserId(1);
+        user.setSignature("New Signature");
+
+        when(userService.update(any())).thenReturn(true);
+
+        mockMvc.perform(put("/user/signature")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(objectMapper.writeValueAsString(user)))
+                .andExpect(status().isOk());
+    }
+
+    // 修改密码
+    @Test
+    public void testModifyPassword_success() throws Exception {
+
+        // 密码正确
+        when(userService.getOne(any())).thenReturn(new User(1, "hcy", "oldPass", null, 0, 0, null, 0, 0, 0));
+        when(userService.update(any())).thenReturn(true);
+
+        mockMvc.perform(put("/user/password")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(objectMapper.writeValueAsString(new ModifyPasswordDTO(1, "oldPass", "newPass"))))
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void testModifyPassword_wrongPassword() throws Exception {
+
+        // 密码错误
+        when(userService.getOne(any())).thenReturn(new User(1, "hcy", "oldPass", null, 0, 0, null, 0, 0, 0));
+
+        mockMvc.perform(put("/user/password")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(objectMapper.writeValueAsString(new ModifyPasswordDTO(1, "wrongPassword", "newPass"))))
+                .andExpect(status().is(408));
+    }
+
+    // 修改头像
+    @Test
+    public void testModifyAvatar() throws Exception {
+
+        // 设置请求参数
+        User user = new User();
+        user.setUserId(1);
+        user.setAvatar("avatar.png");
+
+        when(userService.update(any())).thenReturn(true);
+
+        mockMvc.perform(put("/user/avatar")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(objectMapper.writeValueAsString(user)))
+                .andExpect(status().isOk());
+    }
 }
\ No newline at end of file