blob: 73921621c9b8698a98a36d70f11a3be5b7771610 [file] [log] [blame]
223011385e9c35a2025-06-04 15:52:45 +08001package com.example.myproject.controller;
2
3import com.example.myproject.controller.DynamicController;
4import com.example.myproject.service.DynamicService;
5import org.junit.jupiter.api.BeforeEach;
6import org.junit.jupiter.api.Test;
7import org.mockito.InjectMocks;
8import org.mockito.Mock;
9import org.mockito.MockitoAnnotations;
10import org.springframework.http.ResponseEntity;
11
12import java.util.HashMap;
13import java.util.Map;
14
15import static org.mockito.Mockito.*;
16import static org.junit.jupiter.api.Assertions.*;
17
18class DynamicControllerTest {
19
20 @InjectMocks
21 private DynamicController dynamicController;
22
23 @Mock
24 private DynamicService dynamicService;
25
26 @BeforeEach
27 void setup() {
28 MockitoAnnotations.openMocks(this);
29 }
30
31 // 测试创建动态接口
32 @Test
33 void testCreateDynamic() {
34 Long userId = 1L;
35 String content = "This is a test dynamic";
36 Map<String, Object> mockResponse = new HashMap<>();
37 mockResponse.put("dynamicId", 123L);
38 mockResponse.put("message", "动态创建成功");
39
40 // 模拟 dynamicService.createDynamic 返回
41 when(dynamicService.createDynamic(userId, null, content, null)).thenReturn(mockResponse);
42
43 // 调用控制器方法
44 Map<String, Object> responseMap = dynamicController.createDynamic(userId, null, content, null);
45 ResponseEntity<Map<String, Object>> responseEntity = ResponseEntity.ok(responseMap);
46
47 // 验证返回的结果
48 assertEquals(200, responseEntity.getStatusCodeValue());
49 assertEquals("动态创建成功", responseEntity.getBody().get("message"));
50 assertEquals(123L, responseEntity.getBody().get("dynamicId"));
51 }
52
53
54 // 测试删除动态接口
55 @Test
56 void testDeleteDynamic() {
57 Long dynamicId = 1L;
58 // 模拟 dynamicService.deleteDynamic 方法行为
59 doNothing().when(dynamicService).deleteDynamic(dynamicId);
60
61 // 调用控制器方法
62 ResponseEntity<String> response = dynamicController.deleteDynamic(dynamicId);
63
64 // 验证返回的结果
65 assertEquals(200, response.getStatusCodeValue());
66 assertEquals("动态删除成功", response.getBody());
67 }
68
69 // 测试添加评论接口
70 @Test
71 void testAddComment() {
72 Long userId = 1L;
73 Long dynamicId = 1L;
74 Map<String, String> commentContent = new HashMap<>();
75 commentContent.put("content", "This is a test comment");
76
77 Map<String, Object> mockResponse = new HashMap<>();
78 mockResponse.put("comment_id", 101L);
79 mockResponse.put("message", "评论成功");
80
81 // 模拟 dynamicService.addComment 返回
82 when(dynamicService.addComment(userId, dynamicId, "This is a test comment")).thenReturn(mockResponse);
83
84 // 调用控制器方法
85 ResponseEntity<Map<String, Object>> response = dynamicController.addComment(userId, dynamicId, commentContent);
86
87 // 验证返回的结果
88 assertEquals(200, response.getStatusCodeValue());
89 assertEquals("评论成功", response.getBody().get("message"));
90 assertEquals(101L, response.getBody().get("comment_id"));
91 }
92
93 // 测试获取用户动态接口
94 @Test
95 void testGetAllUserDynamics() {
96 Long userId = 1L;
97 Map<String, Object> mockResponse = new HashMap<>();
98 mockResponse.put("status", "success");
99 mockResponse.put("dynamic", "mock_dynamic_data");
100
101 // 模拟 dynamicService.getAllUserDynamics 返回
102 when(dynamicService.getAllUserDynamics(userId)).thenReturn(mockResponse);
103
104 // 调用控制器方法
105 ResponseEntity<Map<String, Object>> response = dynamicController.getAllUserDynamics(userId);
106
107 // 验证返回的结果
108 assertEquals(200, response.getStatusCodeValue());
109 assertEquals("success", response.getBody().get("status"));
110 assertNotNull(response.getBody().get("dynamic"));
111 }
112
113 // 测试获取所有好友动态接口
114 @Test
115 void testGetAllUserAndFriendsDynamics() {
116 Long userId = 1L;
117 Map<String, Object> mockResponse = new HashMap<>();
118 mockResponse.put("status", "success");
119 mockResponse.put("dynamic", "mock_friend_dynamic_data");
120
121 // 模拟 dynamicService.getAllUserAndFriendsDynamics 返回
122 when(dynamicService.getAllUserAndFriendsDynamics(anyList())).thenReturn(mockResponse);
123
124 // 调用控制器方法
125 ResponseEntity<Map<String, Object>> response = dynamicController.getAllUserAndFriendsDynamics(userId);
126
127 // 验证返回的结果
128 assertEquals(200, response.getStatusCodeValue());
129 assertEquals("success", response.getBody().get("status"));
130 assertNotNull(response.getBody().get("dynamic"));
131 }
132
133 // 测试点赞动态接口
134 @Test
135 void testLikeDynamic() {
136 Map<String, Long> request = new HashMap<>();
137 request.put("userId", 1L);
138 request.put("dynamicId", 1L);
139
140 // 模拟 dynamicService.likeDynamic 返回
141 when(dynamicService.likeDynamic(1L, 1L)).thenReturn(true);
142
143 // 调用控制器方法
144 ResponseEntity<String> response = dynamicController.likeDynamic(request);
145
146 // 验证返回的结果
147 assertEquals(200, response.getStatusCodeValue());
148 assertEquals("Like successful", response.getBody());
149 }
150
151 // 测试取消点赞接口
152 @Test
153 void testUnlikeDynamic() {
154 Map<String, Long> request = new HashMap<>();
155 request.put("userId", 1L);
156 request.put("dynamicId", 1L);
157
158 // 模拟 dynamicService.unlikeDynamic 返回
159 when(dynamicService.unlikeDynamic(1L, 1L)).thenReturn(true);
160
161 // 调用控制器方法
162 ResponseEntity<String> response = dynamicController.unlikeDynamic(request);
163
164 // 验证返回的结果
165 assertEquals(200, response.getStatusCodeValue());
166 assertEquals("Unlike successful", response.getBody());
167 }
168}