public void TestMustThrowArgumentException()
 {
     using (var client = new WrapperClient())
     {
         client.Invoke<object>(string.Empty, string.Empty, new object[0]);
     }
 }
        public WrapperClientInterceptor(Type interfaceType, WrapperClient wrapperClient, ILibraryNameProvider libraryNameProvider)
        {
            Raise.ArgumentNullException.IfIsNull(interfaceType, nameof(interfaceType));
            Raise.ArgumentNullException.IfIsNull(wrapperClient, nameof(wrapperClient));
            Raise.ArgumentNullException.IfIsNull(libraryNameProvider, nameof(libraryNameProvider));

            _interfaceType       = interfaceType;
            _wrapperClient       = wrapperClient;
            _libraryNameProvider = libraryNameProvider;
        }
        public void TestMustThrowObjectDisposedException()
        {
            WrapperClient client;
            using (client = new WrapperClient())
            {
                // Do Nothing
            }

            client.Invoke<TestStdCallDelegate>(TestDllPath, "TestStdCall", new object[0]);
        }
 public void TestCallMethodWithoutException()
 {
     // Create new WrapperClient
     // Remember to ensure a call to the Dispose()-Method!
     using (var client = new WrapperClient())
     {
         // Make calls providing library name, function name, and parameters
         int x = (int)client.Invoke<GetSystemMetrics>("User32.dll", "GetSystemMetrics", new object[] { 0 });
         int y = (int)client.Invoke<GetSystemMetrics>("User32.dll", "GetSystemMetrics", new object[] { 1 });
     }
 }
Exemple #5
0
        public void TestWrapperClientMakesOneSendReceiveCycle()
        {
            Mock <IPipeConnector> pipeConnectorMock = new Mock <IPipeConnector>();

            pipeConnectorMock.Setup(m => m.ReceiveCallResponse())
            .Returns(new CallResult()
            {
                Parameters = new object[0]
            });
            WrapperClient wrapperClient = new WrapperClient(pipeConnectorMock.Object);

            wrapperClient.InvokeInternal(new CallData()
            {
                Parameters = new object[0]
            });

            pipeConnectorMock.Verify(m => m.SendCallRequest(It.IsAny <CallData>()), Times.Once);
            pipeConnectorMock.Verify(m => m.ReceiveCallResponse(), Times.Once);
        }
Exemple #6
0
        public void TestCallParametersAreCopied()
        {
            object[] passedParameters   = { 1, 2, 3 };
            object[] returnedParameters = { 3, 2, 1 };
            CallData callData           = new CallData()
            {
                Parameters = passedParameters
            };

            Mock <IPipeConnector> pipeConnectorMock = new Mock <IPipeConnector>();

            pipeConnectorMock.Setup(m => m.ReceiveCallResponse())
            .Returns(new CallResult()
            {
                Parameters = returnedParameters
            });
            WrapperClient wrapperClient = new WrapperClient(pipeConnectorMock.Object);

            wrapperClient.InvokeInternal(callData);

            CollectionAssert.AreEqual(returnedParameters, passedParameters);
            Assert.AreNotSame(passedParameters, returnedParameters);
        }
 public WrapperClientInterceptor(Type interfaceType, TargetArchitecture targetArchitecture)
 {
     _wrapperClient = new WrapperClient(targetArchitecture);
     _interfaceType = interfaceType;
 }
        public void TestNormalFunc()
        {
            int input = 5;

            int result;
            using (var client = new WrapperClient())
            {
                result = (int)client.Invoke<TestNormalFuncDelegate>(TestDllPath, "TestNormalFunc", new object[] { input });
            }

            Assert.AreNotEqual(input, result);
        }
        public void TestStdCall()
        {
            int input = 5;

            int result;
            using (var client = new WrapperClient())
            {
                result = (int)client.Invoke<TestStdCallDelegate>(TestDllPath, "TestStdCall", new object[] { input });
            }

            Assert.AreEqual(input, result);
        }
        public void TestPWideCharHandling()
        {
            string input = "Hello World";

            string result;
            using (var client = new WrapperClient())
            {
                result = (string)client.Invoke<TestPWideCharHandlingDelegate>(TestDllPath, "TestPWideCharHandling", new object[] { input });
            }

            Assert.AreEqual(input, result);
        }