仪表板功能完善
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
package com.emotion.service;
|
||||
|
||||
import com.emotion.dto.response.DashboardStatsResponse;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
/**
|
||||
* 仪表盘服务测试类
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-10-31
|
||||
*/
|
||||
@SpringBootTest
|
||||
@ActiveProfiles("local")
|
||||
public class DashboardServiceTest {
|
||||
|
||||
@Autowired
|
||||
private DashboardService dashboardService;
|
||||
|
||||
@Test
|
||||
public void testGetDashboardStats() {
|
||||
// 测试获取仪表盘统计数据
|
||||
DashboardStatsResponse stats = dashboardService.getDashboardStats();
|
||||
|
||||
assertNotNull(stats, "仪表盘统计数据不应为空");
|
||||
assertNotNull(stats.getUserStats(), "用户统计数据不应为空");
|
||||
assertNotNull(stats.getContentStats(), "内容统计数据不应为空");
|
||||
assertNotNull(stats.getAiServiceStats(), "AI服务统计数据不应为空");
|
||||
assertNotNull(stats.getSystemStats(), "系统统计数据不应为空");
|
||||
assertNotNull(stats.getUpdateTime(), "更新时间不应为空");
|
||||
|
||||
// 验证用户统计数据
|
||||
DashboardStatsResponse.UserStats userStats = stats.getUserStats();
|
||||
assertTrue(userStats.getTotalUsers() >= 0, "总用户数应大于等于0");
|
||||
assertTrue(userStats.getTodayNewUsers() >= 0, "今日新增用户数应大于等于0");
|
||||
assertTrue(userStats.getActiveUsers() >= 0, "活跃用户数应大于等于0");
|
||||
assertTrue(userStats.getGuestUsers() >= 0, "访客用户数应大于等于0");
|
||||
|
||||
// 验证内容统计数据
|
||||
DashboardStatsResponse.ContentStats contentStats = stats.getContentStats();
|
||||
assertTrue(contentStats.getTotalConversations() >= 0, "总对话数应大于等于0");
|
||||
assertTrue(contentStats.getTotalMessages() >= 0, "总消息数应大于等于0");
|
||||
assertTrue(contentStats.getDiaryPosts() >= 0, "日记帖子数应大于等于0");
|
||||
assertTrue(contentStats.getCommunityPosts() >= 0, "社区帖子数应大于等于0");
|
||||
assertTrue(contentStats.getEmotionRecords() >= 0, "情绪记录数应大于等于0");
|
||||
|
||||
// 验证AI服务统计数据
|
||||
DashboardStatsResponse.AiServiceStats aiStats = stats.getAiServiceStats();
|
||||
assertTrue(aiStats.getTotalApiCalls() >= 0, "总API调用次数应大于等于0");
|
||||
assertTrue(aiStats.getTodayApiCalls() >= 0, "今日API调用次数应大于等于0");
|
||||
assertTrue(aiStats.getSuccessfulCalls() >= 0, "成功调用次数应大于等于0");
|
||||
assertTrue(aiStats.getFailedCalls() >= 0, "失败调用次数应大于等于0");
|
||||
assertTrue(aiStats.getAvgResponseTime() >= 0, "平均响应时间应大于等于0");
|
||||
assertTrue(aiStats.getAiConfigCount() >= 0, "AI配置数量应大于等于0");
|
||||
|
||||
// 验证系统统计数据
|
||||
DashboardStatsResponse.SystemStats systemStats = stats.getSystemStats();
|
||||
assertTrue(systemStats.getAdminCount() >= 0, "管理员数量应大于等于0");
|
||||
assertTrue(systemStats.getAchievementCount() >= 0, "成就数量应大于等于0");
|
||||
assertTrue(systemStats.getRewardCount() >= 0, "奖励数量应大于等于0");
|
||||
assertNotNull(systemStats.getUptime(), "系统运行时间不应为空");
|
||||
|
||||
System.out.println("=== 仪表盘统计数据测试结果 ===");
|
||||
System.out.println("总用户数: " + userStats.getTotalUsers());
|
||||
System.out.println("今日新增用户: " + userStats.getTodayNewUsers());
|
||||
System.out.println("活跃用户数: " + userStats.getActiveUsers());
|
||||
System.out.println("访客用户数: " + userStats.getGuestUsers());
|
||||
System.out.println("总对话数: " + contentStats.getTotalConversations());
|
||||
System.out.println("总消息数: " + contentStats.getTotalMessages());
|
||||
System.out.println("日记帖子数: " + contentStats.getDiaryPosts());
|
||||
System.out.println("社区帖子数: " + contentStats.getCommunityPosts());
|
||||
System.out.println("情绪记录数: " + contentStats.getEmotionRecords());
|
||||
System.out.println("总API调用次数: " + aiStats.getTotalApiCalls());
|
||||
System.out.println("今日API调用次数: " + aiStats.getTodayApiCalls());
|
||||
System.out.println("成功调用次数: " + aiStats.getSuccessfulCalls());
|
||||
System.out.println("失败调用次数: " + aiStats.getFailedCalls());
|
||||
System.out.println("平均响应时间: " + aiStats.getAvgResponseTime() + "ms");
|
||||
System.out.println("AI配置数量: " + aiStats.getAiConfigCount());
|
||||
System.out.println("管理员数量: " + systemStats.getAdminCount());
|
||||
System.out.println("成就数量: " + systemStats.getAchievementCount());
|
||||
System.out.println("奖励数量: " + systemStats.getRewardCount());
|
||||
System.out.println("系统运行时间: " + systemStats.getUptime());
|
||||
System.out.println("最近活动数量: " + stats.getRecentActivities().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetUserStats() {
|
||||
// 测试获取用户统计数据
|
||||
DashboardStatsResponse.UserStats userStats = dashboardService.getUserStats();
|
||||
|
||||
assertNotNull(userStats, "用户统计数据不应为空");
|
||||
assertTrue(userStats.getTotalUsers() >= 0, "总用户数应大于等于0");
|
||||
assertTrue(userStats.getTodayNewUsers() >= 0, "今日新增用户数应大于等于0");
|
||||
assertTrue(userStats.getActiveUsers() >= 0, "活跃用户数应大于等于0");
|
||||
assertTrue(userStats.getGuestUsers() >= 0, "访客用户数应大于等于0");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetContentStats() {
|
||||
// 测试获取内容统计数据
|
||||
DashboardStatsResponse.ContentStats contentStats = dashboardService.getContentStats();
|
||||
|
||||
assertNotNull(contentStats, "内容统计数据不应为空");
|
||||
assertTrue(contentStats.getTotalConversations() >= 0, "总对话数应大于等于0");
|
||||
assertTrue(contentStats.getTotalMessages() >= 0, "总消息数应大于等于0");
|
||||
assertTrue(contentStats.getDiaryPosts() >= 0, "日记帖子数应大于等于0");
|
||||
assertTrue(contentStats.getCommunityPosts() >= 0, "社区帖子数应大于等于0");
|
||||
assertTrue(contentStats.getEmotionRecords() >= 0, "情绪记录数应大于等于0");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAiServiceStats() {
|
||||
// 测试获取AI服务统计数据
|
||||
DashboardStatsResponse.AiServiceStats aiStats = dashboardService.getAiServiceStats();
|
||||
|
||||
assertNotNull(aiStats, "AI服务统计数据不应为空");
|
||||
assertTrue(aiStats.getTotalApiCalls() >= 0, "总API调用次数应大于等于0");
|
||||
assertTrue(aiStats.getTodayApiCalls() >= 0, "今日API调用次数应大于等于0");
|
||||
assertTrue(aiStats.getSuccessfulCalls() >= 0, "成功调用次数应大于等于0");
|
||||
assertTrue(aiStats.getFailedCalls() >= 0, "失败调用次数应大于等于0");
|
||||
assertTrue(aiStats.getAvgResponseTime() >= 0, "平均响应时间应大于等于0");
|
||||
assertTrue(aiStats.getAiConfigCount() >= 0, "AI配置数量应大于等于0");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetSystemStats() {
|
||||
// 测试获取系统统计数据
|
||||
DashboardStatsResponse.SystemStats systemStats = dashboardService.getSystemStats();
|
||||
|
||||
assertNotNull(systemStats, "系统统计数据不应为空");
|
||||
assertTrue(systemStats.getAdminCount() >= 0, "管理员数量应大于等于0");
|
||||
assertTrue(systemStats.getAchievementCount() >= 0, "成就数量应大于等于0");
|
||||
assertTrue(systemStats.getRewardCount() >= 0, "奖励数量应大于等于0");
|
||||
assertNotNull(systemStats.getUptime(), "系统运行时间不应为空");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user