コード例 #1
0
        public void AnswerMessageWellSent()
        {
            int answerCount = 0;
            string lastAnswerReceived = "Nothing";
            string expectedAnswer = "{\"id\":12,\"answer\":{\"type\":\"ConfigurationSubscriptionAnswer\",\"result\":[{\"Instance\":\"inst1\",\"Key\":\"key1\",\"Value\":\"value1\"},{\"Instance\":\"inst121\",\"Key\":\"key121\",\"Value\":\"value121\"}]}}";

            FakeWebsocket w = new FakeWebsocket();
            w.OnMessageSent += (sender, s) =>
            {
                lastAnswerReceived = s;
                answerCount ++;
            };
            IRequestManager<ConfigurationSubscription, ConfigurationSubscriptionAnswer> totest =
                new JsonRequestManager<ConfigurationSubscription, ConfigurationSubscriptionAnswer>(w);
            var anwserMessage = new AnwserMessage<ConfigurationSubscriptionAnswer>()
            {
                id = 12,
                answer = new ConfigurationSubscriptionAnswer()
                {
                    result = new List<Configuration>()
                    {
                        GetFakeConfig(1),
                        GetFakeConfig(121)
                    }
                }
            };
            totest.Send(anwserMessage);
            //Test when we receive shitty data

            Assert.AreEqual(1, answerCount);
            Assert.AreEqual(expectedAnswer,lastAnswerReceived);
        }
コード例 #2
0
        private static void ProducerOnOnRequest(object sender, RequestMessage request)
        {
            var websocket = (IRequestManager)sender;
            var toSend    = projectManager.Update(request.request.projectId,
                                                  request.request.lastUpdated, request.request.toUpdate);
            var splitonSynchRequest = new SplitonSynchRequest();
            //If there is no update, we do not change the lastUpdate
            var lastUpdated = request.request.lastUpdated;

            if (toSend.Count != 0)
            {
                //But if there is some change, the last update is the date of the last received update!
                lastUpdated = toSend.Select(o => o.lastUpdated).Max();
            }
            splitonSynchRequest.lastUpdated = lastUpdated;
            splitonSynchRequest.projectId   = request.request.projectId;
            splitonSynchRequest.toUpdate    = toSend;
            var answer = new AnwserMessage();

            answer.id     = request.id;
            answer.answer = splitonSynchRequest;
            websocket.Send(answer);
        }