Beispiel #1
0
        public void RpcClientFactoryCallCallOnProxyAndWait()
        {
            var delegateProcUriMapper     = new WampDelegateProcUriMapper(methodInfo => methodInfo.Name);
            IWampRpcSerializer serializer = new WampRpcSerializer(delegateProcUriMapper);

            MockWampServerProxyFactory <JToken> mockWampServerProxyFactory = null;

            Mock <IWampServer> serverMock = new Mock <IWampServer>();

            serverMock.Setup(x => x.Call(It.IsAny <IWampClient>(),
                                         It.IsAny <string>(),
                                         It.IsAny <string>(),
                                         It.IsAny <object[]>()))
            .Callback((IWampClient client, string callId, string procUri, object[] args) =>
                      mockWampServerProxyFactory.Client.CallResult(callId, JToken.FromObject(3)));

            mockWampServerProxyFactory = new MockWampServerProxyFactory <JToken>(serverMock.Object);

            WampRpcClientHandlerBuilder <JToken> mockWampRpcClientHandlerBuilder =
                new WampRpcClientHandlerBuilder <JToken>
                    (new JsonFormatter(),
                    mockWampServerProxyFactory);

            IWampRpcClientFactory <JToken> clientFactory = new WampRpcClientFactory <JToken>(serializer, mockWampRpcClientHandlerBuilder);

            ICalculator proxy = clientFactory.GetClient <ICalculator>(DummyConnection <JToken> .Instance);
            int         three = proxy.Square(3);

            Assert.That(three, Is.EqualTo(3));
        }
        public void RpcClientFactoryCallHandlerWithSerializedCall()
        {
            var delegateProcUriMapper = new WampDelegateProcUriMapper(methodInfo => methodInfo.Name);

            IWampRpcSerializer serializer = new WampRpcSerializer(delegateProcUriMapper); // I'm not sure if we want to mock this
            var clientHandler             = new MockWampRpcClientHandler(4);

            var mockWampRpcClientHandlerBuilder           = new MockWampRpcClientHandlerBuilder <MockRaw>(clientHandler);
            IWampRpcClientFactory <MockRaw> clientFactory = new WampRpcClientFactory <MockRaw>(serializer, mockWampRpcClientHandlerBuilder);

            ICalculator proxy = clientFactory.GetClient <ICalculator>(DummyConnection <MockRaw> .Instance);
            int         nine  = proxy.Square(3);

            WampRpcCall wampRpcCall = clientHandler.LastMessage;

            Assert.That(wampRpcCall.ProcUri, Is.EqualTo("Square"));
            CollectionAssert.AreEqual(wampRpcCall.Arguments, new object[] { 3 });
        }
        private WampRpcClientFactory <TMessage> GetRpcClientFactory()
        {
            WampRpcSerializer rpcSerializer =
                new WampRpcSerializer(new WampRpcMethodAttributeProcUriMapper());

            ManualWampServerProxyBuilder <TMessage, IWampRpcClient <TMessage> > serverProxyBuilder =
                GetServerProxyBuilder <IWampRpcClient <TMessage> >();

            Rpc.Client.WampServerProxyFactory <TMessage> serverProxyFactory =
                new Rpc.Client.WampServerProxyFactory <TMessage>(serverProxyBuilder);

            WampRpcClientHandlerBuilder <TMessage> clientHandlerBuilder =
                new WampRpcClientHandlerBuilder <TMessage>(Formatter, serverProxyFactory);

            WampRpcClientFactory <TMessage> result =
                new WampRpcClientFactory <TMessage>
                    (rpcSerializer,
                    clientHandlerBuilder);

            return(result);
        }