This commit is contained in:
SunCheng
2026-02-10 17:49:19 +08:00
parent 3e18283e52
commit d052ae5197
104 changed files with 10369 additions and 3000 deletions

View File

@@ -0,0 +1,96 @@
using Service.Message;
namespace WebApi.Test.Application;
/// <summary>
/// MessageRecordApplication 单元测试
/// </summary>
public class MessageRecordApplicationTest : BaseApplicationTest
{
private readonly IMessageService _messageService;
private readonly ILogger<MessageRecordApplication> _logger;
private readonly MessageRecordApplication _application;
public MessageRecordApplicationTest()
{
_messageService = Substitute.For<IMessageService>();
_logger = CreateMockLogger<MessageRecordApplication>();
_application = new MessageRecordApplication(_messageService, _logger);
}
[Fact]
public async Task GetListAsync_正常查询_应返回消息列表()
{
// Arrange
var messages = new List<MessageRecord>
{
new() { Id = 1, Title = "消息1", Content = "内容1", IsRead = false },
new() { Id = 2, Title = "消息2", Content = "内容2", IsRead = true }
};
_messageService.GetPagedListAsync(1, 20).Returns((messages, 2L));
// Act
var result = await _application.GetListAsync(1, 20);
// Assert
result.Should().NotBeNull();
result.Data.Should().HaveCount(2);
result.Total.Should().Be(2);
}
[Fact]
public async Task GetUnreadCountAsync_应返回未读数量()
{
// Arrange
_messageService.GetUnreadCountAsync().Returns(5L);
// Act
var result = await _application.GetUnreadCountAsync();
// Assert
result.Should().Be(5);
}
[Fact]
public async Task MarkAsReadAsync_应调用服务标记已读()
{
// Arrange
_messageService.MarkAsReadAsync(1).Returns(true);
// Act
var result = await _application.MarkAsReadAsync(1);
// Assert
result.Should().BeTrue();
await _messageService.Received(1).MarkAsReadAsync(1);
}
[Fact]
public async Task MarkAllAsReadAsync_应调用服务全部标记已读()
{
// Arrange
_messageService.MarkAllAsReadAsync().Returns(true);
// Act
var result = await _application.MarkAllAsReadAsync();
// Assert
result.Should().BeTrue();
await _messageService.Received(1).MarkAllAsReadAsync();
}
[Fact]
public async Task DeleteAsync_应调用服务删除消息()
{
// Arrange
_messageService.DeleteAsync(1).Returns(true);
// Act
var result = await _application.DeleteAsync(1);
// Assert
result.Should().BeTrue();
await _messageService.Received(1).DeleteAsync(1);
}
}