OF-DL/OF DL.Tests/Models/Mappers/MessagesMapperTests.cs

114 lines
3.2 KiB
C#

using OF_DL.Models.Dtos.Common;
using OF_DL.Models.Dtos.Messages;
using OF_DL.Models.Entities.Messages;
using OF_DL.Models.Mappers;
namespace OF_DL.Tests.Models.Mappers;
public class MessagesMapperTests
{
[Fact]
public void FromDto_ReturnsDefaults_WhenDtoNull()
{
Messages result = MessagesMapper.FromDto(null as MessagesDto);
Assert.False(result.HasMore);
Assert.Empty(result.List);
}
[Fact]
public void FromDto_MapsListItems()
{
DateTime createdAt = new(2024, 3, 4, 5, 6, 7, DateTimeKind.Utc);
MessagesDto dto = new()
{
HasMore = true,
List =
[
new ListItemDto
{
Id = 11,
Text = "message",
Price = "4.99",
CreatedAt = createdAt,
FromUser = new FromUserDto { Id = 77 },
Media =
[
new MediumDto
{
Id = 22,
Type = "photo",
CanView = true,
Files = new FilesDto { Full = new FullDto { Url = "https://example.com/full.jpg" } }
}
]
}
]
};
Messages result = MessagesMapper.FromDto(dto);
Assert.True(result.HasMore);
Assert.Single(result.List);
ListItem item = result.List[0];
Assert.Equal(11, item.Id);
Assert.Equal("message", item.Text);
Assert.Equal("4.99", item.Price);
Assert.Equal(createdAt, item.CreatedAt);
Assert.NotNull(item.FromUser);
Assert.Equal(77, item.FromUser.Id);
Assert.NotNull(item.Media);
Assert.Single(item.Media);
Assert.Equal(22, item.Media[0].Id);
}
[Fact]
public void FromDto_MapsSingleMessage()
{
DateTime createdAt = new(2024, 4, 5, 6, 7, 8, DateTimeKind.Utc);
SingleMessageDto dto = new()
{
Id = 99,
Text = "single",
Price = 1.23,
CreatedAt = createdAt,
FromUser = new FromUserDto { Id = 55 },
Media =
[
new MediumDto
{
Id = 33,
Type = "video",
CanView = true,
Files = new FilesDto { Full = new FullDto { Url = "https://example.com/full.mp4" } }
}
]
};
SingleMessage result = MessagesMapper.FromDto(dto);
Assert.Equal(99, result.Id);
Assert.Equal("single", result.Text);
Assert.Equal(1.23, result.Price);
Assert.Equal(createdAt, result.CreatedAt);
Assert.NotNull(result.FromUser);
Assert.Equal(55, result.FromUser.Id);
Assert.NotNull(result.Media);
Assert.Single(result.Media);
Assert.Equal(33, result.Media[0].Id);
}
[Fact]
public void FromDto_SingleMessage_ReturnsNullFromUser_WhenIdMissing()
{
SingleMessageDto dto = new() { Id = 1, FromUser = new FromUserDto { Id = null } };
SingleMessage result = MessagesMapper.FromDto(dto);
Assert.Null(result.FromUser);
}
}