Files
lpt-be/src/test/java/com/guo/learningprogresstracker/service/impl/TasksServiceImplTest.java
T
cat-shark 32b247526b feat(复习):标准思维导图生成与回忆对比
- 新增 review_standard_mind_maps / review_recall_records 数据表
- BuiltinMindMapGenerator:从报告/残片/应用场景规则生成标准导图
- MindMapAiClient 接口 + RemoteAiMindMapClient 预留
- StandardMindMapService:生成/编辑/重新生成/回忆对比
- 对比算法:标题归一化 + Bigram Jaccard 模糊匹配
- ReviewController 新增 6 个端点
- MindMapTreeTool / MindMapNode / CompareResult 工具类
- 完整单元测试(10 个,全部通过)
- 更新 docs/review-module-design.md
2026-07-03 08:53:51 +08:00

64 lines
2.5 KiB
Java

package com.guo.learningprogresstracker.service.impl;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.guo.learningprogresstracker.dto.request.CreateTaskApplicationRequest;
import com.guo.learningprogresstracker.entity.TaskApplicationEntity;
import com.guo.learningprogresstracker.entity.TaskEntity;
import com.guo.learningprogresstracker.enums.TaskApplicationStatusEnum;
import com.guo.learningprogresstracker.mapper.TaskApplicationMapper;
import com.guo.learningprogresstracker.mapper.TasksMapper;
import org.apache.ibatis.builder.MapperBuilderAssistant;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class TasksServiceImplTest {
@BeforeAll
static void initTableInfo() {
MybatisConfiguration configuration = new MybatisConfiguration();
TableInfoHelper.initTableInfo(new MapperBuilderAssistant(configuration, ""), TaskEntity.class);
TableInfoHelper.initTableInfo(new MapperBuilderAssistant(configuration, ""), TaskApplicationEntity.class);
}
@InjectMocks
private TasksServiceImpl tasksService;
@Mock
private TasksMapper tasksMapper;
@Mock
private TaskApplicationMapper taskApplicationMapper;
@Test
void createApplication_shouldUseDefaultStatusWhenStatusInvalid() throws Exception {
when(tasksMapper.exists(any())).thenReturn(true);
when(taskApplicationMapper.insert(any())).thenAnswer(invocation -> {
TaskApplicationEntity entity = invocation.getArgument(0);
entity.setId(7);
return 1;
});
CreateTaskApplicationRequest request = new CreateTaskApplicationRequest();
request.setTaskNum("T1");
request.setTitle("Build a demo");
request.setStatus("invalid");
TaskApplicationEntity entity = tasksService.createApplication(request);
assertEquals(7, entity.getId());
assertEquals(TaskApplicationStatusEnum.TODO.getCode(), entity.getStatus());
verify(taskApplicationMapper).insert(any(TaskApplicationEntity.class));
}
}