using Service.Message; namespace WebApi.Test.Application; /// /// MessageRecordApplication 单元测试 /// public class MessageRecordApplicationTest : BaseApplicationTest { private readonly IMessageService _messageService; private readonly MessageRecordApplication _application; public MessageRecordApplicationTest() { _messageService = Substitute.For(); _application = new MessageRecordApplication(_messageService); } [Fact] public async Task GetListAsync_正常查询_应返回消息列表() { // Arrange var messages = new List { 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); } }