Add project reference for TeleWave.Infrastructure: include TeleWave.Infrastructure.csproj in TeleWave.Application.Tests project to support additional testing capabilities.
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
using TeleWave.Application.Admin.Users.CreateUser;
|
||||
using TeleWave.Application.Admin.Users.ResetPassword;
|
||||
using TeleWave.Application.Broadcast;
|
||||
using TeleWave.Application.Broadcast.Bumpers;
|
||||
using TeleWave.Application.Broadcast.CreateOverride;
|
||||
using TeleWave.Application.Broadcast.UpdateChannelSettings;
|
||||
using TeleWave.Application.Broadcast.UpdateChannelShow;
|
||||
using TeleWave.Domain.Broadcast;
|
||||
using Xunit;
|
||||
|
||||
namespace TeleWave.Application.Tests.Validators;
|
||||
|
||||
public class ValidatorTests
|
||||
{
|
||||
[Fact]
|
||||
public void UpdateChannelShow_RejectsBadWeightMultiplierAndWindows()
|
||||
{
|
||||
var v = new UpdateChannelShowCommandValidator();
|
||||
|
||||
var good = new UpdateChannelShowCommand(
|
||||
Guid.NewGuid(),
|
||||
Guid.NewGuid(),
|
||||
5,
|
||||
BlockMode.Count,
|
||||
3,
|
||||
true,
|
||||
4,
|
||||
[new HourWindowInput(18, 23)]
|
||||
);
|
||||
Assert.True(v.Validate(good).IsValid);
|
||||
|
||||
var badMultiplier = good with { PreferredWeightMultiplier = 0 };
|
||||
Assert.False(v.Validate(badMultiplier).IsValid);
|
||||
|
||||
var badWindow = good with { PreferredHours = [new HourWindowInput(23, 20)] };
|
||||
Assert.False(v.Validate(badWindow).IsValid);
|
||||
|
||||
var badWeight = good with { Weight = 0 };
|
||||
Assert.False(v.Validate(badWeight).IsValid);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UpdateBumperTextVariant_ChecksLengthsAndWeight()
|
||||
{
|
||||
var v = new UpdateBumperTextVariantCommandValidator();
|
||||
|
||||
var good = new UpdateBumperTextVariantCommand(
|
||||
Guid.NewGuid(),
|
||||
Guid.NewGuid(),
|
||||
Guid.NewGuid(),
|
||||
"Name",
|
||||
BumperTextKind.NowNext,
|
||||
"NOW",
|
||||
"NEXT",
|
||||
"l1",
|
||||
"l2",
|
||||
BumperTrigger.Both,
|
||||
3
|
||||
);
|
||||
Assert.True(v.Validate(good).IsValid);
|
||||
|
||||
Assert.False(v.Validate(good with { Name = "" }).IsValid);
|
||||
Assert.False(v.Validate(good with { Weight = -1 }).IsValid);
|
||||
Assert.False(v.Validate(good with { Line1 = new string('x', 121) }).IsValid);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UpdateChannelSettings_ChecksRanges()
|
||||
{
|
||||
var v = new UpdateChannelSettingsCommandValidator();
|
||||
var bumper = new BumperSettingsInput(
|
||||
BumperFont.Sans,
|
||||
10,
|
||||
BumperSelection.Rotation,
|
||||
0.5,
|
||||
0.5
|
||||
);
|
||||
|
||||
var good = new UpdateChannelSettingsCommand(
|
||||
Guid.NewGuid(),
|
||||
"Name",
|
||||
true,
|
||||
AdInsertion.BetweenBlocks,
|
||||
2,
|
||||
true,
|
||||
bumper,
|
||||
null
|
||||
);
|
||||
Assert.True(v.Validate(good).IsValid);
|
||||
|
||||
Assert.False(v.Validate(good with { Name = "" }).IsValid);
|
||||
Assert.False(v.Validate(good with { AdsPerBreak = 99 }).IsValid);
|
||||
Assert.False(
|
||||
v.Validate(good with { Bumper = bumper with { ShowChangeChance = 2 } }).IsValid
|
||||
);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CreateOverride_RequiresShows_WithValidWeights()
|
||||
{
|
||||
var v = new CreateProgrammingOverrideCommandValidator();
|
||||
|
||||
var good = new CreateProgrammingOverrideCommand(
|
||||
Guid.NewGuid(),
|
||||
OverrideMode.Boost,
|
||||
OverrideRecurrence.OneTime,
|
||||
DateTimeOffset.UtcNow,
|
||||
DateTimeOffset.UtcNow.AddHours(1),
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
[new OverrideShowInput(Guid.NewGuid(), 3)]
|
||||
);
|
||||
Assert.True(v.Validate(good).IsValid);
|
||||
|
||||
Assert.False(v.Validate(good with { Shows = [] }).IsValid);
|
||||
Assert.False(
|
||||
v.Validate(good with { Shows = [new OverrideShowInput(Guid.NewGuid(), 0)] }).IsValid
|
||||
);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ResetUserPassword_RequiresMinLength()
|
||||
{
|
||||
var v = new ResetUserPasswordCommandValidator();
|
||||
|
||||
Assert.True(v.Validate(new ResetUserPasswordCommand(Guid.NewGuid(), "Password1")).IsValid);
|
||||
Assert.False(v.Validate(new ResetUserPasswordCommand(Guid.NewGuid(), "short")).IsValid);
|
||||
Assert.False(v.Validate(new ResetUserPasswordCommand(Guid.Empty, "Password1")).IsValid);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CreateUser_ChecksNameAndPassword()
|
||||
{
|
||||
var v = new CreateUserCommandValidator();
|
||||
|
||||
Assert.True(v.Validate(new CreateUserCommand("bob", "Password1", Guid.NewGuid())).IsValid);
|
||||
Assert.False(v.Validate(new CreateUserCommand("ab", "Password1", Guid.NewGuid())).IsValid);
|
||||
Assert.False(v.Validate(new CreateUserCommand("bob", "short", Guid.NewGuid())).IsValid);
|
||||
Assert.False(v.Validate(new CreateUserCommand("bob", "Password1", Guid.Empty)).IsValid);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user