using System;
using CncModels.Constants;
using CncModels.Dto;
using CncModels.Dto.Log;
using CncService;
using CncService.Impl;
using Xunit;
namespace CncService.Tests
{
///
/// SystemLogService 系统日志测试
/// 测试场景:分页查询、参数校验
///
[Collection("Database")]
public class SystemLogServiceTests : IDisposable
{
private readonly SystemLogService _service;
public SystemLogServiceTests()
{
TestDb.TruncateAll();
_service = ServiceFactory.CreateSystemLogService();
}
public void Dispose()
{
TestDb.TruncateAll();
}
[Fact]
public void GetList_无数据_返回空列表()
{
var result = _service.GetList(new SystemLogQuery { Page = 1, PageSize = 20 });
Assert.NotNull(result);
Assert.Equal(0, result.Total);
}
[Fact]
public void GetList_查询参数为null_抛出BadRequest异常()
{
var ex = Assert.Throws(() => _service.GetList(null));
Assert.Equal(ErrorCode.BadRequest, ex.Code);
}
[Fact]
public void GetList_有日志数据_返回分页结果()
{
TestDb.Execute(@"INSERT INTO log_system (log_level, source, message, stack_trace, extra_data, created_at)
VALUES ('INFO', 'AuthService', '登录系统', '', '{}', NOW())");
var result = _service.GetList(new SystemLogQuery { Page = 1, PageSize = 20 });
Assert.Equal(1, result.Total);
}
}
}