Esempio n. 1
0
        public void CallServer_And_Receive_Call_Result()
        {
            MockListener <JToken> mockListener = new MockListener <JToken>();

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

            serverMock.Setup(x => x.Call(It.IsAny <IWampClient>(),
                                         It.IsAny <string>(),
                                         It.IsAny <string>(),
                                         It.IsAny <JToken[]>()))
            .Callback((IWampClient clientParameter, string callId, string procUrl, JToken[] arguments) =>
            {
                clientParameter.CallResult(callId, new { stuff = "cool" });
            });

            WampListener <JToken> listener = GetListener(mockListener, serverMock.Object);

            Mock <IWampClient <JToken> > clientMock = new Mock <IWampClient <JToken> >();

            MockConnection <JToken> connection = new MockConnection <JToken>(mFormatter);

            IWampServer client = GetClient(connection.SideAToSideB, clientMock.Object);

            listener.Start();
            mockListener.OnNext(connection.SideBToSideA);

            clientMock.Verify(x => x.Welcome(It.IsAny <string>(),
                                             It.IsAny <int>(),
                                             It.IsAny <string>()));

            Mock <IWampClient> userClientMock = new Mock <IWampClient>();

            client.Call(userClientMock.Object, "a123123", "Test",
                        new
            {
                name = "Jack"
            });

            serverMock.Verify(x => x.Call(It.IsAny <IWampClient>(),
                                          "a123123",
                                          "Test",
                                          It.IsAny <JToken[]>()));

            clientMock.Verify(x => x.CallResult("a123123",
                                                It.Is((JToken result) => result.Value <string>("stuff") == "cool")));
        }