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());
        }
Example #3
0
        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());
        }