Added new BumperEndpoints to the API for managing bumper templates and variants, enhancing the channel management capabilities. Removed outdated bumper-related commands and handlers from the application, streamlining the codebase and improving maintainability. Updated ChannelEndpoints to reflect these changes and ensure proper routing for the new endpoints.
63 lines
2.1 KiB
C#
63 lines
2.1 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using TeleWave.Application.Broadcast;
|
|
using TeleWave.Application.Broadcast.CreateChannel;
|
|
using TeleWave.Application.Broadcast.UpdateChannelSettings;
|
|
using TeleWave.Application.Tests.Support;
|
|
using TeleWave.Domain.Broadcast;
|
|
using TeleWave.Domain.Library;
|
|
using TeleWave.Domain.Media;
|
|
using Xunit;
|
|
|
|
namespace TeleWave.Application.Tests.Broadcast;
|
|
|
|
public class ChannelHandlersTests
|
|
{
|
|
private static readonly DateTimeOffset T0 = new(2026, 1, 1, 0, 0, 0, TimeSpan.Zero);
|
|
|
|
[Fact]
|
|
public async Task CreateChannel_Succeeds_AndRejectsDuplicateSlug()
|
|
{
|
|
var fixture = new TestDb();
|
|
await using var db = fixture.New();
|
|
|
|
var ok = await new CreateChannelCommandHandler(db).Handle(
|
|
new CreateChannelCommand("News", "news"),
|
|
CancellationToken.None
|
|
);
|
|
Assert.True(ok.IsSuccess);
|
|
await db.SaveChangesAsync(CancellationToken.None);
|
|
|
|
var dup = await new CreateChannelCommandHandler(db).Handle(
|
|
new CreateChannelCommand("Other", "news"),
|
|
CancellationToken.None
|
|
);
|
|
Assert.False(dup.IsSuccess);
|
|
Assert.Equal(ChannelErrors.DuplicateSlug, dup.Error);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task UpdateChannelSettings_UpdatesBumperChances()
|
|
{
|
|
var fixture = new TestDb();
|
|
var channel = Channel.Create("c", "c", T0);
|
|
await using (var seed = fixture.New())
|
|
{
|
|
seed.Channels.Add(channel);
|
|
await seed.SaveChangesAsync(CancellationToken.None);
|
|
}
|
|
|
|
await using var db = fixture.New();
|
|
var result = await new UpdateChannelSettingsCommandHandler(db).Handle(
|
|
new UpdateChannelSettingsCommand(channel.Id, "c2", true, null),
|
|
CancellationToken.None
|
|
);
|
|
Assert.True(result.IsSuccess);
|
|
await db.SaveChangesAsync(CancellationToken.None);
|
|
|
|
await using var verify = fixture.New();
|
|
var stored = await verify.Channels.FindAsync(channel.Id);
|
|
Assert.Equal("c2", stored!.Name);
|
|
Assert.True(stored.IsEnabled);
|
|
}
|
|
}
|