Esempio n. 1
0
        public void TestInvalidInterface()
        {
            var implementationMock = new Mock <IInvalidInterface>(MockBehavior.Strict);
            var handlerMock        = new Mock <IProxyHandler <IInvalidInterface> >(MockBehavior.Strict);

            var sleipner      = new SleipnerProxy <IInvalidInterface>(implementationMock.Object);
            var proxiedObject = sleipner.WrapWith(handlerMock.Object);
        }
Esempio n. 2
0
        public void TestPassthroughInvocation()
        {
            var implementationMock = new Mock <ITestInterface>(MockBehavior.Strict);

            implementationMock.Setup(a => a.PassthroughMethod(1, "string"));

            var handlerMock = new Mock <IProxyHandler <ITestInterface> >(MockBehavior.Strict);

            var sleipner      = new SleipnerProxy <ITestInterface>(implementationMock.Object);
            var proxiedObject = sleipner.WrapWith(handlerMock.Object);

            proxiedObject.PassthroughMethod(1, "string");
        }
Esempio n. 3
0
        public async void TestDirectCallInvocationAsync()
        {
            var implementationMock = new Mock <ITestInterface>(MockBehavior.Strict);

            implementationMock.Setup(a => a.AddNumbersAsync(1, 2)).ReturnsAsync(1 + 2);

            var handlerMock             = new Mock <IProxyHandler <ITestInterface> >(MockBehavior.Strict);
            var proxiedMethodInvocation = ProxiedMethodInvocationGenerator <ITestInterface> .FromExpression(a => a.AddNumbersAsync(1, 2));

            handlerMock.Setup(a => a.HandleAsync(proxiedMethodInvocation)).Returns(proxiedMethodInvocation.InvokeAsync(implementationMock.Object));

            var sleipner      = new SleipnerProxy <ITestInterface>(implementationMock.Object);
            var proxiedObject = sleipner.WrapWith(handlerMock.Object);

            var result = await proxiedObject.AddNumbersAsync(1, 2);

            Assert.AreEqual(3, result);
        }
Esempio n. 4
0
        public T CreateCachedInstance()
        {
            var sleipnerProxy = new SleipnerProxy <T>(_implementation);

            return(sleipnerProxy.WrapWith(_proxyHandler));
        }