public void DestinyGgSerializer_SingleMessage_IsNotModified() { var text = "and here, we... go"; var container = new TestContainerManager().Container; var message = new SendablePublicMessage(text); var destinyGgSerializer = container.GetInstance <DestinyGgSerializer>(); var expected = @"MSG {""Data"":""and here, we... go""}"; var serialized = destinyGgSerializer.Create(message.Wrap().ToList()); Assert.AreEqual(expected, serialized.Single()); }
public void DestinyGgSerializer_TwoRepeatedMessages_AreMadeDistinct() { var text = "and here, we... go"; var message = new SendablePublicMessage(text); var messages = new List <SendablePublicMessage> { message, message }; var container = new TestContainerManager().Container; var destinyGgSerializer = container.GetInstance <DestinyGgSerializer>(); var expected1 = @"MSG {""Data"":""and here, we... go""}"; var expected2 = @"MSG {""Data"":""and here, we... go.""}"; var serialized = destinyGgSerializer.Create(messages).ToList(); Assert.AreEqual(2, serialized.Count); Assert.AreEqual(expected1, serialized.First()); Assert.AreEqual(expected2, serialized.Skip(1).First()); }
public IEnumerable <string> Create(IEnumerable <ISendable <ITransmittable> > sendables) { var r = new List <ISendable <ITransmittable> >(); sendables = sendables.ToList(); foreach (var sendable in sendables) { if (sendable is SendablePublicMessage) { var sendablePublicMessage = (SendablePublicMessage)sendable; var toAdd = sendablePublicMessage.Text == _cache.Text ? new SendablePublicMessage(sendablePublicMessage.Text + ".") : sendablePublicMessage; r.Add(toAdd); _cache = toAdd; } else { r.Add(sendable); } } return(r.Select(s => $"{s.Json.Command} {JsonConvert.SerializeObject(s.Json)}")); }
public void DestinyGgSerializer_ThreeSeparateRepeatedMessages_AreMadeAlternating() { var text = "and here, we... go"; var message = new SendablePublicMessage(text); var messages = new List <SendablePublicMessage> { message }; var container = new TestContainerManager().Container; var destinyGgSerializer = container.GetInstance <DestinyGgSerializer>(); var expected1 = @"MSG {""Data"":""and here, we... go""}"; var expected2 = @"MSG {""Data"":""and here, we... go.""}"; var expected3 = @"MSG {""Data"":""and here, we... go""}"; var serialized1 = destinyGgSerializer.Create(messages).ToList(); var serialized2 = destinyGgSerializer.Create(messages).ToList(); var serialized3 = destinyGgSerializer.Create(messages).ToList(); Assert.AreEqual(1, serialized1.Count); Assert.AreEqual(1, serialized2.Count); Assert.AreEqual(1, serialized3.Count); Assert.AreEqual(expected1, serialized1.Single()); Assert.AreEqual(expected2, serialized2.Single()); Assert.AreEqual(expected3, serialized3.Single()); }