All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 4m27s
Docker Build & Deploy / Deploy to Production (push) Successful in 7s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
95 lines
2.5 KiB
C#
95 lines
2.5 KiB
C#
using Service.Message;
|
|
|
|
namespace WebApi.Test.Application;
|
|
|
|
/// <summary>
|
|
/// MessageRecordApplication 单元测试
|
|
/// </summary>
|
|
public class MessageRecordApplicationTest : BaseApplicationTest
|
|
{
|
|
private readonly IMessageService _messageService;
|
|
private readonly MessageRecordApplication _application;
|
|
|
|
public MessageRecordApplicationTest()
|
|
{
|
|
_messageService = Substitute.For<IMessageService>();
|
|
_application = new MessageRecordApplication(_messageService);
|
|
}
|
|
|
|
[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);
|
|
}
|
|
}
|