public void CallServer_And_Receive_Call_Result_ViaRpcServer() { MockListener <JToken> mockListener = new MockListener <JToken>(); var wampRpcServiceHost = new WampRpcMetadataCatalog(); wampRpcServiceHost.Register(new MethodInfoWampRpcMetadata(new AddCalculator())); WampRpcServer <JToken> rpcServer = new WampRpcServer <JToken>(mFormatter, wampRpcServiceHost); WampListener <JToken> listener = GetListener(mockListener, rpcServer); MockConnection <JToken> connection = new MockConnection <JToken>(mFormatter); WampRpcClientFactory <JToken> factory = new WampRpcClientFactory <JToken>(new WampRpcSerializer(new WampDelegateProcUriMapper(x => "http://www.yogev.com/pr/" + x.Name)), new WampRpcClientHandlerBuilder <JToken>(mFormatter, new WampServerProxyFactory <JToken>(new WampServerProxyBuilder <JToken, IWampRpcClient <JToken>, IWampServer>(new WampOutgoingRequestSerializer <JToken>(mFormatter), new WampServerProxyOutgoingMessageHandlerBuilder <JToken, IWampRpcClient <JToken> >(new WampServerProxyIncomingMessageHandlerBuilder <JToken, IWampRpcClient <JToken> >(mFormatter)))))); listener.Start(); IAddCalculator calculator = factory.GetClient <IAddCalculator>(connection.SideAToSideB); mockListener.OnNext(connection.SideBToSideA); int sixteen = calculator.Add(10, 6); Assert.That(sixteen, Is.EqualTo(16)); }