60 lines
1.4 KiB
C#
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();
|
|
}
|
|
}
|