public void ProceedOnInvocation()
        {
            var invocationMock = new Mock <IInvocation>();
            var loggerMock     = new Mock <ILogger>();

            var adapter = new CastleInvocationToAlternateMethodContextAdapter(invocationMock.Object, loggerMock.Object, new Mock <IMessageBroker>().Object, new Mock <IProxyFactory>().Object, () => new ExecutionTimer(Stopwatch.StartNew()), () => RuntimePolicy.On);

            adapter.Proceed();
            invocationMock.Verify(i => i.Proceed(), Times.Once());
        }
        public void Construct()
        {
            var invocationMock = new Mock <IInvocation>();
            var loggerMock     = new Mock <ILogger>();

            var adapter = new CastleInvocationToAlternateMethodContextAdapter(invocationMock.Object, loggerMock.Object, new Mock <IMessageBroker>().Object, new Mock <IProxyFactory>().Object, () => new ExecutionTimer(Stopwatch.StartNew()), () => RuntimePolicy.On);

            Assert.Equal(invocationMock.Object, adapter.Invocation);
            Assert.Equal(loggerMock.Object, adapter.Logger);
        }
        public void SetReturnValueOnInvocation()
        {
            var expected       = new { Any = "Object" };
            var invocationMock = new Mock <IInvocation>();
            var loggerMock     = new Mock <ILogger>();

            var adapter = new CastleInvocationToAlternateMethodContextAdapter(invocationMock.Object, loggerMock.Object, new Mock <IMessageBroker>().Object, new Mock <IProxyFactory>().Object, () => new ExecutionTimer(Stopwatch.StartNew()), () => RuntimePolicy.On);

            adapter.ReturnValue = expected;

            invocationMock.VerifySet(i => i.ReturnValue = expected, Times.Once());
        }
        public void ReturnMethodFromInvocation()
        {
            var expected       = GetType().GetMethods().First();
            var invocationMock = new Mock <IInvocation>();

            invocationMock.Setup(i => i.Method).Returns(expected);
            var loggerMock = new Mock <ILogger>();

            var adapter = new CastleInvocationToAlternateMethodContextAdapter(invocationMock.Object, loggerMock.Object, new Mock <IMessageBroker>().Object, new Mock <IProxyFactory>().Object, () => new ExecutionTimer(Stopwatch.StartNew()), () => RuntimePolicy.On);

            Assert.Equal(expected, adapter.Method);
            invocationMock.Verify(i => i.Method, Times.Once());
        }
        public void ReturnGetArgumentValueFromInvocation()
        {
            var expected       = new { Any = "Object" };
            var invocationMock = new Mock <IInvocation>();

            invocationMock.Setup(i => i.GetArgumentValue(0)).Returns(expected);
            var loggerMock = new Mock <ILogger>();

            var adapter = new CastleInvocationToAlternateMethodContextAdapter(invocationMock.Object, loggerMock.Object, new Mock <IMessageBroker>().Object, new Mock <IProxyFactory>().Object, () => new ExecutionTimer(Stopwatch.StartNew()), () => RuntimePolicy.On);

            Assert.Equal(expected, adapter.GetArgumentValue(0));
            invocationMock.Verify(i => i.GetArgumentValue(0), Times.Once());
        }