public void Executing_dispatches_to_interceptors()
        {
            var interceptionContext = new DbInterceptionContext();
            var command             = new Mock <DbCommand>().Object;

            var mockInterceptor = new Mock <ICancelableDbCommandInterceptor>();

            mockInterceptor.Setup(m => m.CommandExecuting(command, interceptionContext)).Returns(true);

            var dispatcher         = new CancelableDbCommandDispatcher();
            var internalDispatcher = dispatcher.InternalDispatcher;

            internalDispatcher.Add(mockInterceptor.Object);

            Assert.True(dispatcher.Executing(command, interceptionContext));

            mockInterceptor.Verify(m => m.CommandExecuting(command, interceptionContext));
        }
        public void Executing_returns_false_if_any_interceptor_returns_false()
        {
            var mockInterceptor1 = new Mock <ICancelableDbCommandInterceptor>();

            mockInterceptor1.Setup(m => m.CommandExecuting(It.IsAny <DbCommand>(), It.IsAny <DbInterceptionContext>())).Returns(true);

            var mockInterceptor2 = new Mock <ICancelableDbCommandInterceptor>();

            mockInterceptor2.Setup(m => m.CommandExecuting(It.IsAny <DbCommand>(), It.IsAny <DbInterceptionContext>())).Returns(false);

            var mockInterceptor3 = new Mock <ICancelableDbCommandInterceptor>();

            mockInterceptor3.Setup(m => m.CommandExecuting(It.IsAny <DbCommand>(), It.IsAny <DbInterceptionContext>())).Returns(true);

            var dispatcher         = new CancelableDbCommandDispatcher();
            var internalDispatcher = dispatcher.InternalDispatcher;

            internalDispatcher.Add(mockInterceptor1.Object);
            internalDispatcher.Add(mockInterceptor2.Object);
            internalDispatcher.Add(mockInterceptor3.Object);

            Assert.False(dispatcher.Executing(new Mock <DbCommand>().Object, new DbInterceptionContext()));
        }