예제 #1
0
        public static void ExceptionPolicyHandler_HandleNull()
        {
            // Arrange
            var handler = new ExceptionPolicyHandler();

            // Act
            var result = handler.HandleException(null);

            // Assert
            Assert.False(result);
        }
예제 #2
0
        public static void ExceptionPolicyHandler_Chain_IsNull()
        {
            // Arrange
            var handler = new ExceptionPolicyHandler();

            handler.Chain = null;

            // Act
            var result = handler.HandleException(new InvalidOperationException());

            // Assert
            Assert.False(result);
        }
예제 #3
0
        public static void ExceptionPolicyHandler_Unhandled()
        {
            // Arrange
            var ex           = new InvalidOperationException();
            var handlerMock1 = new Mock <IExceptionHandler>(MockBehavior.Strict);
            var handlerMock2 = new Mock <IExceptionHandler>(MockBehavior.Strict);

            handlerMock1.Setup(h => h.HandleException(ex)).Returns(false);
            handlerMock2.Setup(h => h.HandleException(ex)).Returns(false);
            var handler = new ExceptionPolicyHandler();

            handler.Chain = new[] { handlerMock1.Object, handlerMock2.Object };

            // Act
            var result = handler.HandleException(ex);

            // Assert
            Assert.False(result);
            handlerMock1.VerifyAll();
            handlerMock2.VerifyAll();
        }
예제 #4
0
        public static void ExceptionPolicyHandler_Handle_TargetInvocationException(Type type)
        {
            // Arrange
            var ex           = (Exception)Activator.CreateInstance(type, "test", new InvalidOperationException());
            var handlerMock1 = new Mock <IExceptionHandler>(MockBehavior.Strict);
            var handlerMock2 = new Mock <IExceptionHandler>(MockBehavior.Strict);
            var handlerMock3 = new Mock <IExceptionHandler>(MockBehavior.Strict);

            handlerMock1.Setup(h => h.HandleException(ex.InnerException)).Returns(false);
            handlerMock2.Setup(h => h.HandleException(ex.InnerException)).Returns(true);
            var handler = new ExceptionPolicyHandler();

            handler.Chain = new[] { handlerMock1.Object, handlerMock2.Object, handlerMock3.Object };

            // Act
            var result = handler.HandleException(ex);

            // Assert
            Assert.True(result);
            handlerMock1.VerifyAll();
            handlerMock2.VerifyAll();
            handlerMock3.VerifyAll();
        }