public void YammerMessagePoster_PostReply_ShouldSucceed() { var testBody = "This is a body"; var serviceResponseText = @"Testing"; var testMessage = new Message(); var deserializedResponse = new MessagesFetchResponse { Messages = new List<Message> { testMessage } }; _serviceManager.Setup(s => s.PostMessageReply(It.IsAny<string>(), It.IsAny<long>())).Returns(serviceResponseText); _deserializer.Setup(s => s.DeserializeMessagesResponse(It.IsAny<string>())).Returns(deserializedResponse); var result = _messagePoster.PostReply(testBody, 1); Assert.AreEqual(testMessage, result); _serviceManager.Verify(v => v.PostMessageReply(It.Is<string>(i => i == testBody), It.Is<long>(i=>i==1)), Times.Once()); _deserializer.Verify(v => v.DeserializeMessagesResponse(It.Is<string>(i => i == serviceResponseText)), Times.Once()); }
public void YammerMessageFetcher_GetLatestMessages_ShouldSucceed() { var responseText = "Testing"; var responseMessages = new List<Message> { new Message(), new Message(), new Message() }; var responseObject = new MessagesFetchResponse { Messages = responseMessages }; _service.Setup(s => s.GetLatestMessagesTextFromServer()).Returns(responseText); _deserializer.Setup(s => s.DeserializeMessagesResponse(It.IsAny<string>())).Returns(responseObject); var result = _messageFetcher.GetLatestMessages(); Assert.AreEqual(responseMessages, result); _service.Verify(v=>v.GetLatestMessagesTextFromServer(), Times.Once()); _deserializer.Verify(v=>v.DeserializeMessagesResponse(It.Is<string>(i=>i==responseText)), Times.Once()); }
public void YammerMessageFetcher_GetUnprocessedMessages_ShouldFetchMoreMessagesWhenNecessary() { var firstResponseText = "Testing"; var secondResponseText = "Testing2"; var firstResponseMessages = new List<Message> { new Message{ID = 6}, new Message{ID = 5}, new Message{ID = 4} }; var secondResponseMessages = new List<Message> { new Message{ID = 3}, new Message{ID = 2}, new Message{ID = 1} }; var firstResponseObject = new MessagesFetchResponse { Messages = firstResponseMessages }; var secondResponseObject = new MessagesFetchResponse { Messages = secondResponseMessages }; _service.Setup(s => s.GetLatestMessagesTextFromServer()).Returns(firstResponseText); _service.Setup(s=>s.GetLatestMessagesTextFromServerAfterMessageID(It.IsAny<long>())).Returns(secondResponseText); _deserializer.Setup(s => s.DeserializeMessagesResponse(It.Is<string>(i=>i==firstResponseText))).Returns(firstResponseObject); _deserializer.Setup(s => s.DeserializeMessagesResponse(It.Is<string>(i=>i==secondResponseText))).Returns(secondResponseObject); _databaseManager.Setup(s => s.IsMessageInDatabase(It.Is<long>(i => i > 1))).Returns(false); _databaseManager.Setup(s => s.IsMessageInDatabase(It.Is<long>(i => i == 1))).Returns(true); var result = _messageFetcher.GetUnprocessedMessages(); Assert.AreEqual(5, result.Count()); _service.Verify(v => v.GetLatestMessagesTextFromServer(), Times.Once()); _service.Verify(v => v.GetLatestMessagesTextFromServerAfterMessageID(It.Is<long>(i => i == 4)), Times.Once()); _deserializer.Verify(v => v.DeserializeMessagesResponse(It.Is<string>(i => i == firstResponseText)), Times.Once()); _deserializer.Verify(v => v.DeserializeMessagesResponse(It.Is<string>(i => i == secondResponseText)), Times.Once()); _databaseManager.Verify(v => v.SaveMessages(It.Is<IEnumerable<Message>>(i => 5 == i.Count())), Times.Once()); _databaseManager.Verify(v => v.SaveChanges(), Times.Once()); }