2
0
forked from sim0n00ps/OF-DL
OF-DL/OF DL.Tests/Models/Mappers/CommonMapperTests.cs

174 lines
4.5 KiB
C#

using OF_DL.Models.Dtos.Common;
using OF_DL.Models.Entities.Common;
using OF_DL.Models.Mappers;
namespace OF_DL.Tests.Models.Mappers;
public class CommonMapperTests
{
[Fact]
public void MapAuthor_ReturnsNull_WhenDtoNull() => Assert.Null(CommonMapper.MapAuthor(null));
[Fact]
public void MapAuthor_ReturnsNull_WhenIdZero()
{
AuthorDto dto = new() { Id = 0 };
Assert.Null(CommonMapper.MapAuthor(dto));
}
[Fact]
public void MapAuthor_MapsId_WhenValid()
{
AuthorDto dto = new() { Id = 42 };
Author? result = CommonMapper.MapAuthor(dto);
Assert.NotNull(result);
Assert.Equal(42, result.Id);
}
[Fact]
public void MapFull_ReturnsNull_WhenUrlEmpty()
{
FullDto dto = new() { Url = "" };
Assert.Null(CommonMapper.MapFull(dto));
}
[Fact]
public void MapFull_MapsUrl_WhenPresent()
{
FullDto dto = new() { Url = "https://example.com/full.jpg" };
Full? result = CommonMapper.MapFull(dto);
Assert.NotNull(result);
Assert.Equal(dto.Url, result.Url);
}
[Fact]
public void MapPreview_ReturnsNull_WhenUrlEmpty()
{
PreviewDto dto = new() { Url = "" };
Assert.Null(CommonMapper.MapPreview(dto));
}
[Fact]
public void MapPreview_MapsUrl_WhenPresent()
{
PreviewDto dto = new() { Url = "https://example.com/preview.jpg" };
Preview? result = CommonMapper.MapPreview(dto);
Assert.NotNull(result);
Assert.Equal(dto.Url, result.Url);
}
[Fact]
public void MapManifest_ReturnsNull_WhenDashEmpty()
{
ManifestDto dto = new() { Dash = "" };
Assert.Null(CommonMapper.MapManifest(dto));
}
[Fact]
public void MapManifest_MapsDash_WhenPresent()
{
ManifestDto dto = new() { Dash = "dash.mpd" };
Manifest? result = CommonMapper.MapManifest(dto);
Assert.NotNull(result);
Assert.Equal(dto.Dash, result.Dash);
}
[Fact]
public void MapSignature_ReturnsNull_WhenDashEmpty()
{
SignatureDto dto = new() { Dash = new DashDto() };
Assert.Null(CommonMapper.MapSignature(dto));
}
[Fact]
public void MapSignature_MapsDash_WhenAnyDashFieldPresent()
{
SignatureDto dto = new() { Dash = new DashDto { CloudFrontPolicy = "policy" } };
Signature? result = CommonMapper.MapSignature(dto);
Assert.NotNull(result);
Assert.NotNull(result.Dash);
Assert.Equal("policy", result.Dash.CloudFrontPolicy);
}
[Fact]
public void MapDrm_ReturnsNull_WhenDtoNull() => Assert.Null(CommonMapper.MapDrm(null));
[Fact]
public void MapDrm_MapsManifestAndSignature_WhenPresent()
{
DrmDto dto = new()
{
Manifest = new ManifestDto { Dash = "dash.mpd" },
Signature = new SignatureDto { Dash = new DashDto { CloudFrontSignature = "signature" } }
};
Drm? result = CommonMapper.MapDrm(dto);
Assert.NotNull(result);
Assert.NotNull(result.Manifest);
Assert.NotNull(result.Signature);
Assert.Equal("dash.mpd", result.Manifest.Dash);
Assert.Equal("signature", result.Signature.Dash?.CloudFrontSignature);
}
[Fact]
public void MapFiles_ReturnsNull_WhenAllPartsNull()
{
FilesDto dto = new() { Full = { Url = "" }, Preview = { Url = "" }, Drm = null };
Assert.Null(CommonMapper.MapFiles(dto));
}
[Fact]
public void MapFiles_MapsParts_WhenPresent()
{
FilesDto dto = new()
{
Full = { Url = "https://example.com/full.jpg" }, Preview = { Url = "https://example.com/preview.jpg" }
};
Files? result = CommonMapper.MapFiles(dto);
Assert.NotNull(result);
Assert.NotNull(result.Full);
Assert.NotNull(result.Preview);
Assert.Equal(dto.Full.Url, result.Full.Url);
Assert.Equal(dto.Preview.Url, result.Preview.Url);
}
[Fact]
public void MapVideoSources_ReturnsNull_WhenAllEmpty()
{
VideoSourcesDto dto = new() { _240 = "", _720 = "" };
Assert.Null(CommonMapper.MapVideoSources(dto));
}
[Fact]
public void MapVideoSources_MapsFields_WhenPresent()
{
VideoSourcesDto dto = new() { _240 = "240.mp4", _720 = "720.mp4" };
VideoSources? result = CommonMapper.MapVideoSources(dto);
Assert.NotNull(result);
Assert.Equal("240.mp4", result._240);
Assert.Equal("720.mp4", result._720);
}
}