public async Task TryCatchAsync2_1_Return() { // Setup var mock = new Mock <ITryCatchFinally>(); mock.Setup(m => m.TryAsync <string>()).Returns(Task.FromResult("Test")); var m = mock.Object; // Act var returnValue = await Try.CatchReturnAsync(m.TryAsync <string>, m.Catch); // Assert Assert.Equal("Test", returnValue); mock.Verify(m => m.TryAsync <string>(), Times.Once); mock.Verify(m => m.Catch(It.IsAny <Exception>()), Times.Never); }
public async Task TryCatchAsync2_2_Return() { // Setup var ex = new Exception(); var mock = new Mock <ITryCatchFinally>(); mock.Setup(m => m.TryAsync <string>()).Throws(ex); var m = mock.Object; // Act var returnValue = await Try.CatchReturnAsync(m.TryAsync <string>, m.CatchAsync, defaultValue : "Test"); // Assert Assert.Equal("Test", returnValue); mock.Verify(m => m.TryAsync <string>(), Times.Once); mock.Verify( m => m.CatchAsync(It.Is <Exception>(e => ReferenceEquals(e, ex))), Times.Once); }