Skip to content

Commit 5f5f287

Browse files
fix broken tests and add missing test
1 parent e1119fd commit 5f5f287

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

Shared.EventStore.Tests/AggregateServiceTests.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ public async Task Get_ShouldReturnAggregateFromRepository_GetLatestThrowsExcepti
124124
public async Task Save_ShouldSaveAggregateToRepository_NoCaching() {
125125
// Arrange
126126
var aggregate = new TestAggregate { AggregateId = Guid.NewGuid() };
127+
aggregate.SetAggregateName("1", Guid.NewGuid());
127128
var repositoryMock = new Mock<IAggregateRepository<TestAggregate, DomainEvent>>();
128129

129130
repositoryMock.Setup(repo => repo.SaveChanges(aggregate, It.IsAny<CancellationToken>())).ReturnsAsync(Result.Success());
@@ -142,6 +143,7 @@ public async Task Save_ShouldSaveAggregateToRepository_NoCaching() {
142143
public async Task Save_ShouldSaveAggregateToRepository_AndCacheIt() {
143144
// Arrange
144145
var aggregate = new TestAggregate { AggregateId = Guid.NewGuid() };
146+
aggregate.SetAggregateName("1", Guid.NewGuid());
145147
var repositoryMock = new Mock<IAggregateRepository<TestAggregate, DomainEvent>>();
146148
this._aggregateService.AddCachedAggregate(typeof(TestAggregate));
147149

@@ -157,6 +159,26 @@ public async Task Save_ShouldSaveAggregateToRepository_AndCacheIt() {
157159
repositoryMock.Verify(repo => repo.SaveChanges(aggregate, It.IsAny<CancellationToken>()), Times.Once);
158160
}
159161

162+
[Fact]
163+
public async Task Save_ShouldSaveAggregateToRepository_NoChanges_SaveNotCalled()
164+
{
165+
// Arrange
166+
var aggregate = new TestAggregate { AggregateId = Guid.NewGuid() };
167+
var repositoryMock = new Mock<IAggregateRepository<TestAggregate, DomainEvent>>();
168+
this._aggregateService.AddCachedAggregate(typeof(TestAggregate));
169+
170+
repositoryMock.Setup(repo => repo.SaveChanges(aggregate, It.IsAny<CancellationToken>())).ReturnsAsync(Result.Success());
171+
172+
_repositoryResolverMock.Setup(resolver => resolver.Resolve<TestAggregate, DomainEvent>()).Returns(repositoryMock.Object);
173+
174+
// Act
175+
var result = await _aggregateService.Save(aggregate, CancellationToken.None);
176+
177+
// Assert
178+
result.IsSuccess.ShouldBeTrue();
179+
repositoryMock.Verify(repo => repo.SaveChanges(aggregate, It.IsAny<CancellationToken>()), Times.Never);
180+
}
181+
160182
[Fact]
161183
public async Task Save_ShouldSaveAggregateToRepository_AndCacheIt_SecondSave_UpdatesCache() {
162184
// Arrange
@@ -190,6 +212,7 @@ public async Task Save_ShouldSaveAggregateToRepository_AndCacheIt_SecondSave_Upd
190212
public async Task Save_ShouldSaveAggregateToRepository_SaveFails() {
191213
// Arrange
192214
var aggregate = new TestAggregate { AggregateId = Guid.NewGuid() };
215+
aggregate.SetAggregateName("1", Guid.NewGuid());
193216
var repositoryMock = new Mock<IAggregateRepository<TestAggregate, DomainEvent>>();
194217

195218
repositoryMock.Setup(repo => repo.SaveChanges(aggregate, It.IsAny<CancellationToken>())).ReturnsAsync(Result.Failure);

0 commit comments

Comments
 (0)