Skip to content

Commit be7facb

Browse files
ShouldThrowServiceExceptionOnModifyIfDatabaseUpdateErrorOccursAndLogItAsync-> FAIL
1 parent b39b853 commit be7facb

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

LibraryManagement.Api.Tests.Unit/Services/Foundations/Readers/ReaderServiceTests.Exceptions.Modify.cs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,5 +157,53 @@ await Assert.ThrowsAsync<ReaderDependencyValidationException>(() =>
157157
this.loggingBrokerMock.VerifyNoOtherCalls();
158158
this.storageBrokerMock.VerifyNoOtherCalls();
159159
}
160+
161+
[Fact]
162+
public async Task ShouldThrowServiceExceptionOnModifyIfDatabaseUpdateErrorOccursAndLogItAsync()
163+
{
164+
// given
165+
Reader randomReader = CreateRandomReader();
166+
Reader someReader = randomReader;
167+
Guid readerId = someReader.ReaderId;
168+
Exception serviceException = new Exception();
169+
170+
var failedReaderServiceException =
171+
new FailedReaderServiceException(serviceException);
172+
173+
var expectedReaderServiceException =
174+
new ReaderServiceException(failedReaderServiceException);
175+
176+
this.storageBrokerMock.Setup(broker =>
177+
broker.SelectReaderByIdAsync(readerId))
178+
.Throws(serviceException);
179+
180+
// when
181+
ValueTask<Reader> modifyReaderTask =
182+
this.readerService.ModifyReaderAsync(someReader);
183+
184+
ReaderServiceException actualReaderServiceException =
185+
await Assert.ThrowsAsync<ReaderServiceException>(() =>
186+
modifyReaderTask.AsTask());
187+
188+
// then
189+
actualReaderServiceException.Should()
190+
.BeEquivalentTo(expectedReaderServiceException);
191+
192+
this.loggingBrokerMock.Verify(broker =>
193+
broker.LogError(It.Is(SameExceptionAs(
194+
expectedReaderServiceException))),
195+
Times.Once);
196+
197+
this.storageBrokerMock.Verify(broker =>
198+
broker.SelectReaderByIdAsync(readerId),
199+
Times.Once);
200+
201+
this.storageBrokerMock.Verify(broker =>
202+
broker.UpdateReaderAsync(someReader),
203+
Times.Never);
204+
205+
this.loggingBrokerMock.VerifyNoOtherCalls();
206+
this.storageBrokerMock.VerifyNoOtherCalls();
207+
}
160208
}
161209
}

0 commit comments

Comments
 (0)