public void ShouldNotFailOnDoubleDisposeTest()
        {
            Mockery mockery;
            MockDynamicInvokerRealProxy mockDynamicInvokerRealProxy;
            IDynamicInvocation          mockDynamicInvocation;

            mockery = new Mockery();
            mockDynamicInvocation = mockery.NewMock <IDynamicInvocation>();

            Expect.Once.On(mockDynamicInvocation).Method("Dispose").WithNoArguments();

            mockDynamicInvokerRealProxy = new MockDynamicInvokerRealProxy(mockDynamicInvocation);

            Assert.IsNotNull(mockDynamicInvokerRealProxy);

            mockDynamicInvokerRealProxy.Dispose();
            mockDynamicInvokerRealProxy.Dispose();

            mockery.VerifyAllExpectationsHaveBeenMet();
        }
        public void ShouldCreateInstanceWithInvokeDynamicAndDisposeInnerDisposableTest()
        {
            Mockery mockery;
            MockDynamicInvokerRealProxy mockDynamicInvokerRealProxy;
            IDynamicInvocation mockDynamicInvocation;

            mockery = new Mockery();
            mockDynamicInvocation = mockery.NewMock<IDynamicInvocation>();

            Expect.Once.On(mockDynamicInvocation).Method("Dispose").WithNoArguments();

            mockDynamicInvokerRealProxy = new MockDynamicInvokerRealProxy(mockDynamicInvocation);
            Assert.IsFalse(mockDynamicInvokerRealProxy.Disposed);
            Assert.IsNotNull(mockDynamicInvokerRealProxy);

            mockDynamicInvokerRealProxy.Dispose();
            Assert.IsTrue(mockDynamicInvokerRealProxy.Disposed);

            mockery.VerifyAllExpectationsHaveBeenMet();
        }
        public void ShouldCreateInstanceWithInvokeDynamicAndDisposeInnerDisposableTest()
        {
            Mockery mockery;
            MockDynamicInvokerRealProxy mockDynamicInvokerRealProxy;
            IDynamicInvocation          mockDynamicInvocation;

            mockery = new Mockery();
            mockDynamicInvocation = mockery.NewMock <IDynamicInvocation>();

            Expect.Once.On(mockDynamicInvocation).Method("Dispose").WithNoArguments();

            mockDynamicInvokerRealProxy = new MockDynamicInvokerRealProxy(mockDynamicInvocation);
            Assert.IsFalse(mockDynamicInvokerRealProxy.Disposed);
            Assert.IsNotNull(mockDynamicInvokerRealProxy);

            mockDynamicInvokerRealProxy.Dispose();
            Assert.IsTrue(mockDynamicInvokerRealProxy.Disposed);

            mockery.VerifyAllExpectationsHaveBeenMet();
        }
        public void ShouldFailOnDisposedInvokeTest()
        {
            Mockery mockery;
            MockDynamicInvokerRealProxy mockDynamicInvokerRealProxy;
            IDynamicInvocation mockDynamicInvocation;
            IMethodCallMessage mockMessage;
            MethodInfo invokedMethodInfo;

            mockery = new Mockery();
            mockDynamicInvocation = mockery.NewMock<IDynamicInvocation>();

            mockMessage = mockery.NewMock<IMethodCallMessage>();
            invokedMethodInfo = (MethodInfo)MemberInfoProxy<IDisposable>.GetLastMemberInfo(exec => exec.Dispose());

            Expect.Once.On(mockDynamicInvocation).Method("Dispose").WithNoArguments();

            mockDynamicInvokerRealProxy = new MockDynamicInvokerRealProxy(mockDynamicInvocation);

            Assert.IsNotNull(mockDynamicInvokerRealProxy);

            mockDynamicInvokerRealProxy.Dispose();

            mockDynamicInvokerRealProxy.Invoke(mockMessage);
        }
        public void ShouldFailOnDisposedInvokeTest()
        {
            Mockery mockery;
            MockDynamicInvokerRealProxy mockDynamicInvokerRealProxy;
            IDynamicInvocation          mockDynamicInvocation;
            IMethodCallMessage          mockMessage;
            MethodInfo invokedMethodInfo;

            mockery = new Mockery();
            mockDynamicInvocation = mockery.NewMock <IDynamicInvocation>();

            mockMessage       = mockery.NewMock <IMethodCallMessage>();
            invokedMethodInfo = (MethodInfo)MemberInfoProxy <IDisposable> .GetLastMemberInfo(exec => exec.Dispose());

            Expect.Once.On(mockDynamicInvocation).Method("Dispose").WithNoArguments();

            mockDynamicInvokerRealProxy = new MockDynamicInvokerRealProxy(mockDynamicInvocation);

            Assert.IsNotNull(mockDynamicInvokerRealProxy);

            mockDynamicInvokerRealProxy.Dispose();

            mockDynamicInvokerRealProxy.Invoke(mockMessage);
        }
        public void ShouldNotFailOnDoubleDisposeTest()
        {
            Mockery mockery;
            MockDynamicInvokerRealProxy mockDynamicInvokerRealProxy;
            IDynamicInvocation mockDynamicInvocation;

            mockery = new Mockery();
            mockDynamicInvocation = mockery.NewMock<IDynamicInvocation>();

            Expect.Once.On(mockDynamicInvocation).Method("Dispose").WithNoArguments();

            mockDynamicInvokerRealProxy = new MockDynamicInvokerRealProxy(mockDynamicInvocation);

            Assert.IsNotNull(mockDynamicInvokerRealProxy);

            mockDynamicInvokerRealProxy.Dispose();
            mockDynamicInvokerRealProxy.Dispose();

            mockery.VerifyAllExpectationsHaveBeenMet();
        }