예제 #1
0
        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);
        }
예제 #2
0
        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);
        }