Files
TeleWave/backend/tests/TeleWave.Domain.Tests/Broadcast/DomainRecordFactoryTests.cs
T

57 lines
1.7 KiB
C#

using TeleWave.Domain.Broadcast;
using TeleWave.Domain.Settings;
using Xunit;
namespace TeleWave.Domain.Tests.Broadcast;
/// <summary>Мелкие фабрики/сеттеры простых сущностей, которые нигде не покрыты напрямую.</summary>
public class DomainRecordFactoryTests
{
[Fact]
public void ChannelShowHour_Contains_HalfOpenWindow()
{
var cs = Channel
.Create("c", "c", DateTimeOffset.UnixEpoch)
.AddShow(Guid.NewGuid(), 1, BlockMode.Count, 1);
cs.SetPreferredHours(2, [(9, 12)]);
var hour = Assert.Single(cs.PreferredHours);
Assert.False(hour.Contains(8));
Assert.True(hour.Contains(9));
Assert.True(hour.Contains(11));
Assert.False(hour.Contains(12));
}
[Fact]
public void BumperAsset_Create_StoresPair()
{
var channel = Guid.NewGuid();
var template = Guid.NewGuid();
var variant = Guid.NewGuid();
var from = Guid.NewGuid();
var to = Guid.NewGuid();
var asset = Guid.NewGuid();
var b = BumperAsset.Create(channel, template, variant, from, to, "sig", asset);
Assert.Equal(channel, b.ChannelId);
Assert.Equal(template, b.TemplateId);
Assert.Equal(variant, b.VariantId);
Assert.Equal(from, b.FromShowId);
Assert.Equal(to, b.ToShowId);
Assert.Equal("sig", b.Signature);
Assert.Equal(asset, b.MediaAssetId);
}
[Fact]
public void AppSetting_CreateAndSetValue()
{
var s = AppSetting.Create("site.title", "TeleWave");
Assert.Equal("site.title", s.Key);
Assert.Equal("TeleWave", s.Value);
s.SetValue("New");
Assert.Equal("New", s.Value);
}
}