forked from sim0n00ps/OF-DL
76 lines
2.1 KiB
C#
76 lines
2.1 KiB
C#
using OF_DL.Models.Dtos.Common;
|
|
using OF_DL.Models.Dtos.Highlights;
|
|
using OF_DL.Models.Entities.Highlights;
|
|
using OF_DL.Models.Mappers;
|
|
|
|
namespace OF_DL.Tests.Models.Mappers;
|
|
|
|
public class HighlightsMapperTests
|
|
{
|
|
[Fact]
|
|
public void FromDto_ReturnsDefaults_WhenDtoNull()
|
|
{
|
|
Highlights result = HighlightsMapper.FromDto((HighlightsDto?)null);
|
|
|
|
Assert.False(result.HasMore);
|
|
Assert.Empty(result.List);
|
|
}
|
|
|
|
[Fact]
|
|
public void FromDto_MapsListItems()
|
|
{
|
|
HighlightsDto dto = new() { HasMore = true, List = [new ListItemDto { Id = 99 }] };
|
|
|
|
Highlights result = HighlightsMapper.FromDto(dto);
|
|
|
|
Assert.True(result.HasMore);
|
|
Assert.Single(result.List);
|
|
Assert.Equal(99, result.List[0].Id);
|
|
}
|
|
|
|
[Fact]
|
|
public void FromDto_MapsHighlightMediaStories()
|
|
{
|
|
DateTime createdAt = new(2024, 2, 3, 4, 5, 6, DateTimeKind.Utc);
|
|
|
|
HighlightMediaDto dto = new()
|
|
{
|
|
Stories =
|
|
[
|
|
new StoryDto
|
|
{
|
|
Id = 5,
|
|
CreatedAt = createdAt,
|
|
Media =
|
|
[
|
|
new MediumDto
|
|
{
|
|
Id = 8,
|
|
Type = "video",
|
|
CanView = true,
|
|
CreatedAt = createdAt,
|
|
Files = new FilesDto { Full = new FullDto { Url = "https://example.com/full.mp4" } }
|
|
}
|
|
]
|
|
}
|
|
]
|
|
};
|
|
|
|
HighlightMedia result = HighlightsMapper.FromDto(dto);
|
|
|
|
Assert.Single(result.Stories);
|
|
|
|
Story story = result.Stories[0];
|
|
Assert.Equal(5, story.Id);
|
|
Assert.Equal(createdAt, story.CreatedAt);
|
|
Assert.NotNull(story.Media);
|
|
Assert.Single(story.Media);
|
|
|
|
Medium media = story.Media[0];
|
|
Assert.Equal(8, media.Id);
|
|
Assert.NotNull(media.Files);
|
|
Assert.NotNull(media.Files.Full);
|
|
Assert.Equal("https://example.com/full.mp4", media.Files.Full.Url);
|
|
}
|
|
}
|