Files
2026-02-26 14:04:18 +07:00

60 lines
1.4 KiB
C#

using FluentAssertions;
using MyNewProjectName.Domain.Common;
namespace MyNewProjectName.UnitTest.Domain;
public class BaseEntityTests
{
private class TestEntity : BaseEntity { }
private class TestDomainEvent : IDomainEvent
{
public DateTime OccurredOn { get; } = DateTime.UtcNow;
}
[Fact]
public void AddDomainEvent_ShouldAddEventToCollection()
{
// Arrange
var entity = new TestEntity();
var domainEvent = new TestDomainEvent();
// Act
entity.AddDomainEvent(domainEvent);
// Assert
entity.DomainEvents.Should().Contain(domainEvent);
entity.DomainEvents.Should().HaveCount(1);
}
[Fact]
public void RemoveDomainEvent_ShouldRemoveEventFromCollection()
{
// Arrange
var entity = new TestEntity();
var domainEvent = new TestDomainEvent();
entity.AddDomainEvent(domainEvent);
// Act
entity.RemoveDomainEvent(domainEvent);
// Assert
entity.DomainEvents.Should().BeEmpty();
}
[Fact]
public void ClearDomainEvents_ShouldRemoveAllEvents()
{
// Arrange
var entity = new TestEntity();
entity.AddDomainEvent(new TestDomainEvent());
entity.AddDomainEvent(new TestDomainEvent());
// Act
entity.ClearDomainEvents();
// Assert
entity.DomainEvents.Should().BeEmpty();
}
}