public void ProceedAndPublishMessagesWithRuntimePolicyOn(IAlternateMethodContext context, ExceptionContext argument)
        {
            context.Setup(c => c.Arguments).Returns(new object[] { argument });

            var sut = new ExceptionFilter.OnException();
            sut.NewImplementation(context);

            context.TimerStrategy().Verify(t => t.Time(It.IsAny<Action>()));
            context.MessageBroker.Verify(mb => mb.Publish(It.IsAny<ExceptionFilter.OnException.Message>()));
        }
        public void ProceedAndReturnWithRuntimePolicyOff(IAlternateMethodContext context)
        {
            context.Setup(c => c.RuntimePolicyStrategy).Returns(() => RuntimePolicy.Off);

            var sut = new ExceptionFilter.OnException();
            sut.NewImplementation(context);

            context.Verify(c => c.Proceed());
            context.MessageBroker.Verify(mb => mb.Publish(It.IsAny<MessageBase>()), Times.Never());
        }
        public void ProceedAndPublishMessagesWithRuntimePolicyOn(IAlternateMethodContext context, ExceptionContext argument)
        {
            context.Setup(c => c.Arguments).Returns(new object[] { argument });

            var sut = new ExceptionFilter.OnException();

            sut.NewImplementation(context);

            context.TimerStrategy().Verify(t => t.Time(It.IsAny <Action>()));
            context.MessageBroker.Verify(mb => mb.Publish(It.IsAny <ExceptionFilter.OnException.Message>()));
        }
        public void ProceedAndReturnWithRuntimePolicyOff(IAlternateMethodContext context)
        {
            context.Setup(c => c.RuntimePolicyStrategy).Returns(() => RuntimePolicy.Off);

            var sut = new ExceptionFilter.OnException();

            sut.NewImplementation(context);

            context.Verify(c => c.Proceed());
            context.MessageBroker.Verify(mb => mb.Publish(It.IsAny <MessageBase>()), Times.Never());
        }
        public void ImplementProperMethod()
        {
            var sut = new ExceptionFilter.OnException();

            Assert.Equal("OnException", sut.MethodToImplement.Name);
        }
        public void ImplementProperMethod()
        {
            var sut = new ExceptionFilter.OnException();

            Assert.Equal("OnException", sut.MethodToImplement.Name);
        }