Files
TeleWave/backend/tests/TeleWave.Application.Tests/Media/ImportManualInboxValidatorTests.cs
T

50 lines
1.7 KiB
C#

using TeleWave.Application.Media.ManualInbox;
using Xunit;
namespace TeleWave.Application.Tests.Media;
public class ImportManualInboxValidatorTests
{
private static ImportManualInboxCommand Command(int? season, int? episode) =>
new([new ManualImportItem("Шоу/файл.mkv", season, episode)], Guid.NewGuid());
[Theory]
[InlineData(1, 0)] // пилот идёт как E00 — это норма, а не ошибка ввода
[InlineData(0, 1)] // спецвыпуски живут в нулевом сезоне
[InlineData(1, 1)]
[InlineData(99, 999)]
[InlineData(null, null)] // номера не заданы — сервер разберёт имя сам
public void AllowsRealWorldNumbers(int? season, int? episode)
{
Assert.True(new ImportManualInboxCommandValidator().Validate(Command(season, episode)).IsValid);
}
[Theory]
[InlineData(-1, 1)]
[InlineData(100, 1)]
[InlineData(1, -1)]
[InlineData(1, 1000)]
public void RejectsOutOfRange(int? season, int? episode)
{
Assert.False(new ImportManualInboxCommandValidator().Validate(Command(season, episode)).IsValid);
}
[Fact]
public void RejectsEmptyBatchAndMissingShow()
{
var validator = new ImportManualInboxCommandValidator();
Assert.False(validator.Validate(new ImportManualInboxCommand([], Guid.NewGuid())).IsValid);
Assert.False(
validator
.Validate(
new ImportManualInboxCommand(
[new ManualImportItem("файл.mkv", 1, 1)],
Guid.Empty
)
)
.IsValid
);
}
}