public async Task TryRemoveAsync_ShouldCallInner_AndReturnResult_WhenIdIsGiven(bool handlerReturnValue) { // Arrange const int id = 5; var expectedResult = true; InvalidOperationException actualException = null; _mockInner .Setup(i => i.TryRemoveAsync(id)) .ReturnsAsync(expectedResult); var subject = new AsyncCommandServiceExceptionHandler <FakeEntity <int>, int, InvalidOperationException>(_mockInner.Object, ex => { actualException = ex; return(handlerReturnValue); }); // Act var actualResult = await subject.TryRemoveAsync(id).ConfigureAwait(false); // Assert actualResult.Should().Be(expectedResult); actualException.Should().BeNull(); _mockInner.VerifyAll(); }
public async Task TryRemoveAsync_ShouldInvokeHandler_AndReturnResult_WhenEntityIsGiven_AndInnerThrowsException_AndHandlerReturnsTrue() { // Arrange var entity = new FakeEntity <int> { Id = 5 }; var expectedException = new InvalidOperationException(); InvalidOperationException actualException = null; _mockInner .Setup(i => i.TryRemoveAsync(entity)) .ThrowsAsync(expectedException); var subject = new AsyncCommandServiceExceptionHandler <FakeEntity <int>, int, InvalidOperationException>(_mockInner.Object, ex => { actualException = ex; return(true); }); // Act var actualResult = await subject.TryRemoveAsync(entity).ConfigureAwait(false); // Assert actualResult.Should().BeFalse(); actualException.Should().BeSameAs(expectedException); _mockInner.VerifyAll(); }
public void AddAsync_ShouldInvokeHandler_AndRethrow_WhenInnerThrowsException_AndHandlerReturnsFalse() { // Arrange var entity = new FakeEntity <int> { Id = 5 }; var expectedException = new InvalidOperationException(); InvalidOperationException actualException = null; _mockInner .Setup(i => i.AddAsync(entity)) .ThrowsAsync(expectedException); var subject = new AsyncCommandServiceExceptionHandler <FakeEntity <int>, int, InvalidOperationException>(_mockInner.Object, ex => { actualException = ex; return(false); }); // Act Func <Task> action = async() => await subject.AddAsync(entity).ConfigureAwait(false); // Assert action.Should().Throw <InvalidOperationException>(); actualException.Should().BeSameAs(expectedException); _mockInner.VerifyAll(); }
public void TryRemoveAsync_ShouldNotCatchException_WhenEntityIsGiven_AndInnerThrowsException_AndTypeIsWrong(bool handlerReturnValue) { // Arrange var entity = new FakeEntity <int> { Id = 5 }; InvalidOperationException actualException = null; _mockInner .Setup(i => i.TryRemoveAsync(entity)) .ThrowsAsync(new Exception()); var subject = new AsyncCommandServiceExceptionHandler <FakeEntity <int>, int, InvalidOperationException>(_mockInner.Object, ex => { actualException = ex; return(handlerReturnValue); }); // Act Func <Task> action = async() => await subject.TryRemoveAsync(entity).ConfigureAwait(false); // Assert action.Should().Throw <Exception>(); actualException.Should().BeNull(); _mockInner.VerifyAll(); }
public async Task RemoveAsync_ShouldCallInner_WhenEntityIsGiven(bool handlerReturnValue) { // Arrange var entity = new FakeEntity <int> { Id = 5 }; InvalidOperationException actualException = null; _mockInner .Setup(i => i.RemoveAsync(entity)) .Returns(TaskHelpers.CompletedTask); var subject = new AsyncCommandServiceExceptionHandler <FakeEntity <int>, int, InvalidOperationException>(_mockInner.Object, ex => { actualException = ex; return(handlerReturnValue); }); // Act await subject.RemoveAsync(entity).ConfigureAwait(false); // Assert actualException.Should().BeNull(); _mockInner.VerifyAll(); }
public async Task RemoveAsync_ShouldInvokeHandler_WhenIdIsGiven_AndInnerThrowsException_AndHandlerReturnsTrue() { // Arrange const int id = 5; var expectedException = new InvalidOperationException(); InvalidOperationException actualException = null; _mockInner .Setup(i => i.RemoveAsync(id)) .ThrowsAsync(expectedException); var subject = new AsyncCommandServiceExceptionHandler <FakeEntity <int>, int, InvalidOperationException>(_mockInner.Object, ex => { actualException = ex; return(true); }); // Act await subject.RemoveAsync(id).ConfigureAwait(false); // Assert actualException.Should().BeSameAs(expectedException); _mockInner.VerifyAll(); }