public async Task TaskCatchFinallyAsync1_1() { // Setup var mock = new Mock <ITryCatchFinally>(); var m = mock.Object; // Act await Try.CatchFinallyAsync <InvalidCastException>(m.TryAsync, m.Catch, m.Finally); // Assert mock.Verify(m => m.TryAsync(), Times.Once); mock.Verify(m => m.Catch(It.IsAny <InvalidCastException>()), Times.Never); mock.Verify(m => m.Finally(), Times.Once); }
public async Task TaskCatchFinallyAsync1_2() { // Setup var ex = new Exception(); var mock = new Mock <ITryCatchFinally>(); mock.Setup(m => m.TryAsync()).Throws(ex); var m = mock.Object; // Act await Try.CatchFinallyAsync(m.TryAsync, m.Catch, m.Finally); // Assert mock.Verify(m => m.TryAsync(), Times.Once); mock.Verify(m => m.Catch(It.IsAny <Exception>()), Times.Once); mock.Verify(m => m.Finally(), Times.Once); }
public async Task TaskCatchFinallyAsync1_2() { // Setup var ex = new InvalidCastException(); var mock = new Mock <ITryCatchFinally>(); mock.Setup(m => m.TryAsync()).Throws(ex); var m = mock.Object; // Act await Try.CatchFinallyAsync <InvalidCastException>(m.TryAsync, m.Catch, m.Finally); // Assert mock.Verify(m => m.TryAsync(), Times.Once); mock.Verify( m => m.Catch(It.Is <InvalidCastException>(e => ReferenceEquals(e, ex))), Times.Once); mock.Verify(m => m.Finally(), Times.Once); }
public async Task TaskCatchFinally_3() { // Setup var ex = new ArgumentNullException(); var mock = new Mock <ITryCatchFinally>(); mock.Setup(m => m.TryAsync()).Throws(ex); var m = mock.Object; await Assert.ThrowsAsync <ArgumentNullException>(async() => { // Act await Try.CatchFinallyAsync <InvalidCastException>(m.TryAsync, m.Catch, m.Finally); }); // Assert mock.Verify(m => m.TryAsync(), Times.Once); mock.Verify(m => m.Catch(It.IsAny <InvalidCastException>()), Times.Never); mock.Verify(m => m.Finally(), Times.Once); }
public async Task TaskCatchFinallyAsync3_3() { // Setup var ex = new ArgumentOutOfRangeException(); var mock = new Mock <ITryCatchFinally>(); mock.Setup(m => m.TryAsync()).Throws(ex); var m = mock.Object; await Assert.ThrowsAsync <ArgumentOutOfRangeException>(async() => { // Act await Try.CatchFinallyAsync <InvalidCastException>(m.TryAsync, m.CatchAsync, m.FinallyAsync); }); // Assert mock.Verify(m => m.TryAsync(), Times.Once); mock.Verify( m => m.CatchAsync(It.Is <InvalidCastException>(e => ReferenceEquals(e, ex))), Times.Never); mock.Verify(m => m.FinallyAsync(), Times.Once); }