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); }
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); }