using ScadaLink.Commons.Entities.Notifications;
using ScadaLink.Commons.Types.Enums;
namespace ScadaLink.Commons.Tests.Entities;
///
/// Verifies the outbox entity's constructor defaults
/// and null-argument guards on required reference-type parameters.
///
public class NotificationEntityTests
{
[Fact]
public void Constructor_SetsDefaults()
{
var n = new Notification("id-1", NotificationType.Email, "ops-team", "subj", "body", "SiteA");
Assert.Equal(NotificationStatus.Pending, n.Status);
Assert.Equal(0, n.RetryCount);
Assert.Equal("id-1", n.NotificationId);
Assert.Equal(NotificationType.Email, n.Type);
Assert.Equal("ops-team", n.ListName);
Assert.Equal("SiteA", n.SourceSiteId);
}
[Fact]
public void Constructor_NullArguments_Throw()
{
Assert.Throws(() => new Notification(null!, NotificationType.Email, "list", "s", "b", "SiteA"));
Assert.Throws(() => new Notification("id", NotificationType.Email, null!, "s", "b", "SiteA"));
Assert.Throws(() => new Notification("id", NotificationType.Email, "list", null!, "b", "SiteA"));
Assert.Throws(() => new Notification("id", NotificationType.Email, "list", "s", null!, "SiteA"));
Assert.Throws(() => new Notification("id", NotificationType.Email, "list", "s", "b", null!));
}
}