blob: 7fa6ff3abbc15b8b45d98a2d749c60f20090c4ea [file] [log] [blame]
package com.example.myproject.controller;
import com.example.myproject.entity.SeedComment;
import com.example.myproject.service.SeedCommentService;
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.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;
public class SeedCommentControllerTest {
@InjectMocks
private SeedCommentController seedCommentController;
@Mock
private SeedCommentService seedCommentService;
@BeforeEach
public void setUp() {
MockitoAnnotations.openMocks(this); // 初始化 Mockito 注解
}
// 测试发布评论
@Test
public void testPublishComment() {
int seedId = 1;
SeedComment seedComment = new SeedComment();
seedComment.setContent("Test comment content");
seedComment.setUserId(1);
seedComment.setComCommentId(0); // 顶级评论
// 模拟服务层的返回值
String expectedResponse = "{ \"status\": \"success\", \"message\": \"评论发布成功\" }";
when(seedCommentService.publishComment(seedId, seedComment)).thenReturn(expectedResponse);
// 调用控制器的方法
String result = seedCommentController.publishComment(seedId, seedComment);
// 验证结果
assertEquals(expectedResponse, result);
}
// 测试获取种子下所有评论
@Test
public void testGetAllComments() {
int seedId = 1;
// 模拟服务层的返回值
Map<String, Object> expectedResponse = new HashMap<>();
expectedResponse.put("status", "success");
expectedResponse.put("comments", "dummyComments"); // 示例返回数据
when(seedCommentService.getAllCommentsForSeed(seedId)).thenReturn(expectedResponse);
// 调用控制器的方法
Map<String, Object> result = seedCommentController.getAllComments(seedId);
// 验证结果
assertEquals(expectedResponse, result);
}
// 测试点赞切换操作
@Test
public void testToggleLike() {
Long commentId = 1L;
Map<String, Object> request = new HashMap<>();
request.put("user_id", 1L);
// 模拟服务层的返回值
Map<String, Object> expectedResponse = new HashMap<>();
expectedResponse.put("status", "success");
expectedResponse.put("message", "操作成功");
expectedResponse.put("liked", "true");
when(seedCommentService.toggleLike(commentId, 1L)).thenReturn(expectedResponse);
// 调用控制器的方法
Map<String, Object> result = seedCommentController.toggleLike(commentId, request);
// 验证结果
assertEquals(expectedResponse, result);
}
}