mirror of
https://github.com/babalae/better-genshin-impact.git
synced 2026-04-25 22:29:47 +08:00
60 lines
2.2 KiB
C#
60 lines
2.2 KiB
C#
using BetterGenshinImpact.Service.Notification;
|
|
using BetterGenshinImpact.Service.Notification.Model.Enum;
|
|
|
|
namespace BetterGenshinImpact.UnitTest.ServiceTests.NotificationTests;
|
|
|
|
public class NotificationEventSubscriptionHelperTests
|
|
{
|
|
[Fact]
|
|
public void ParseEventCodes_ShouldTrimAndDeduplicate()
|
|
{
|
|
var result = NotificationEventSubscriptionHelper.ParseEventCodes(
|
|
" domain.start, task.error ,domain.start,,TASK.ERROR ");
|
|
|
|
Assert.Equal(["domain.start", "task.error"], result);
|
|
}
|
|
|
|
[Fact]
|
|
public void NormalizeEventCodes_ShouldReturnStableCommaSeparatedString()
|
|
{
|
|
var result = NotificationEventSubscriptionHelper.NormalizeEventCodes(
|
|
[" domain.start ", "", "task.error", "domain.start"]);
|
|
|
|
Assert.Equal("domain.start,task.error", result);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null)]
|
|
[InlineData("")]
|
|
[InlineData(" ")]
|
|
public void ShouldSendNotification_ShouldTreatEmptySubscriptionAsAll(string? subscribeEventStr)
|
|
{
|
|
var result = NotificationEventSubscriptionHelper.ShouldSendNotification(
|
|
subscribeEventStr,
|
|
NotificationEvent.DomainStart.Code);
|
|
|
|
Assert.True(result);
|
|
}
|
|
|
|
[Fact]
|
|
public void ShouldSendNotification_ShouldMatchExactEventCode()
|
|
{
|
|
const string subscribeEventStr = "domain.start,task.error";
|
|
|
|
Assert.True(NotificationEventSubscriptionHelper.ShouldSendNotification(subscribeEventStr, "domain.start"));
|
|
Assert.False(NotificationEventSubscriptionHelper.ShouldSendNotification(subscribeEventStr, "domain"));
|
|
Assert.False(NotificationEventSubscriptionHelper.ShouldSendNotification(subscribeEventStr, "task"));
|
|
Assert.False(NotificationEventSubscriptionHelper.ShouldSendNotification(subscribeEventStr, "domain.start.extra"));
|
|
}
|
|
|
|
[Fact]
|
|
public void GetAll_ShouldReturnStaticNotificationEvents()
|
|
{
|
|
var events = NotificationEvent.GetAll();
|
|
|
|
Assert.NotEmpty(events);
|
|
Assert.Contains(events, notificationEvent => notificationEvent.Code == NotificationEvent.Test.Code);
|
|
Assert.Contains(events, notificationEvent => notificationEvent.Code == NotificationEvent.DomainStart.Code);
|
|
}
|
|
}
|