blob: 4fcbcc77a90ba0b2e0a099b12b09126ba97a7f49 [file] [log] [blame]
package com.example.myproject.controller;
import com.example.myproject.service.UserMessageService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.http.ResponseEntity;
import java.util.HashMap;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;
class UserMessageControllerTest {
@InjectMocks
private UserMessageController userMessageController;
@Mock
private UserMessageService userMessageService;
@BeforeEach
void setup() {
MockitoAnnotations.openMocks(this);
}
@Test
void testSendMessage() {
// 准备测试数据
Map<String, Object> params = new HashMap<>();
params.put("sender_id", 1L);
params.put("receiver_id", 2L);
params.put("content", "测试消息");
Map<String, Object> mockResponse = new HashMap<>();
mockResponse.put("status", "success");
mockResponse.put("message", "私信发送成功");
mockResponse.put("message_id", 100L);
// 模拟Service方法调用
when(userMessageService.sendMessage(1L, 2L, "测试消息")).thenReturn(mockResponse);
// 执行测试
ResponseEntity<Map<String, Object>> response = userMessageController.sendMessage(params);
// 验证结果
assertEquals(200, response.getStatusCodeValue());
assertEquals("success", response.getBody().get("status"));
assertEquals("私信发送成功", response.getBody().get("message"));
assertEquals(100L, response.getBody().get("message_id"));
}
@Test
void testGetUserMessages() {
// 准备测试数据
Long userId = 1L;
Map<String, Object> mockResponse = new HashMap<>();
mockResponse.put("status", "success");
mockResponse.put("messages", new HashMap<>());
// 模拟Service方法调用
when(userMessageService.getUserMessages(userId)).thenReturn(mockResponse);
// 执行测试
ResponseEntity<Map<String, Object>> response = userMessageController.getUserMessages(userId);
// 验证结果
assertEquals(200, response.getStatusCodeValue());
assertEquals("success", response.getBody().get("status"));
}
@Test
void testGetMessage() {
// 准备测试数据
Long messageId = 1L;
Map<String, Object> mockResponse = new HashMap<>();
mockResponse.put("status", "success");
mockResponse.put("message", new HashMap<>());
// 模拟Service方法调用
when(userMessageService.getMessage(messageId)).thenReturn(mockResponse);
// 执行测试
ResponseEntity<Map<String, Object>> response = userMessageController.getMessage(messageId);
// 验证结果
assertEquals(200, response.getStatusCodeValue());
assertEquals("success", response.getBody().get("status"));
}
}