blob: 4fcbcc77a90ba0b2e0a099b12b09126ba97a7f49 [file] [log] [blame]
223011385e9c35a2025-06-04 15:52:45 +08001package com.example.myproject.controller;
2
3import com.example.myproject.service.UserMessageService;
4import org.junit.jupiter.api.BeforeEach;
5import org.junit.jupiter.api.Test;
6import org.mockito.InjectMocks;
7import org.mockito.Mock;
8import org.mockito.MockitoAnnotations;
9import org.springframework.http.ResponseEntity;
10
11import java.util.HashMap;
12import java.util.Map;
13
14import static org.junit.jupiter.api.Assertions.assertEquals;
15import static org.mockito.Mockito.when;
16
17class UserMessageControllerTest {
18
19 @InjectMocks
20 private UserMessageController userMessageController;
21
22 @Mock
23 private UserMessageService userMessageService;
24
25 @BeforeEach
26 void setup() {
27 MockitoAnnotations.openMocks(this);
28 }
29
30 @Test
31 void testSendMessage() {
32 // 准备测试数据
33 Map<String, Object> params = new HashMap<>();
34 params.put("sender_id", 1L);
35 params.put("receiver_id", 2L);
36 params.put("content", "测试消息");
37
38 Map<String, Object> mockResponse = new HashMap<>();
39 mockResponse.put("status", "success");
40 mockResponse.put("message", "私信发送成功");
41 mockResponse.put("message_id", 100L);
42
43 // 模拟Service方法调用
44 when(userMessageService.sendMessage(1L, 2L, "测试消息")).thenReturn(mockResponse);
45
46 // 执行测试
47 ResponseEntity<Map<String, Object>> response = userMessageController.sendMessage(params);
48
49 // 验证结果
50 assertEquals(200, response.getStatusCodeValue());
51 assertEquals("success", response.getBody().get("status"));
52 assertEquals("私信发送成功", response.getBody().get("message"));
53 assertEquals(100L, response.getBody().get("message_id"));
54 }
55
56 @Test
57 void testGetUserMessages() {
58 // 准备测试数据
59 Long userId = 1L;
60
61 Map<String, Object> mockResponse = new HashMap<>();
62 mockResponse.put("status", "success");
63 mockResponse.put("messages", new HashMap<>());
64
65 // 模拟Service方法调用
66 when(userMessageService.getUserMessages(userId)).thenReturn(mockResponse);
67
68 // 执行测试
69 ResponseEntity<Map<String, Object>> response = userMessageController.getUserMessages(userId);
70
71 // 验证结果
72 assertEquals(200, response.getStatusCodeValue());
73 assertEquals("success", response.getBody().get("status"));
74 }
75
76 @Test
77 void testGetMessage() {
78 // 准备测试数据
79 Long messageId = 1L;
80
81 Map<String, Object> mockResponse = new HashMap<>();
82 mockResponse.put("status", "success");
83 mockResponse.put("message", new HashMap<>());
84
85 // 模拟Service方法调用
86 when(userMessageService.getMessage(messageId)).thenReturn(mockResponse);
87
88 // 执行测试
89 ResponseEntity<Map<String, Object>> response = userMessageController.getMessage(messageId);
90
91 // 验证结果
92 assertEquals(200, response.getStatusCodeValue());
93 assertEquals("success", response.getBody().get("status"));
94 }
95}