public void Deserialize_TestSingleMessage_msg8()
        {
            var parser   = new IRCParser();
            var messages = parser.Deserialize(msg8);

            Assert.AreEqual(2, messages.Length);

            // message 0
            Assert.IsNotNull(messages[0], "IRC msg is null.");
            Assert.IsNull(messages[0].Tags, "Tags is not null.");
            Assert.AreEqual("[email protected]", messages[0].Prefix);
            Assert.AreEqual("JOIN", messages[0].Command, "Command is not equal msg2.");
            Assert.AreEqual(1, messages[0].Middle.Length);
            Assert.AreEqual("#qwerty", messages[0].Middle[0]);
            Assert.IsNull(messages[0].Trailing, "Trailing is not null.");

            // message 1
            Assert.IsNotNull(messages[1], "IRC msg is null.");
            Assert.IsNull(messages[1].Tags, "Tags is not null.");
            Assert.AreEqual("[email protected]", messages[1].Prefix);
            Assert.AreEqual("FOO", messages[1].Command, "Command is not equal msg2.");
            Assert.AreEqual(1, messages[1].Middle.Length);
            Assert.AreEqual("#test", messages[1].Middle[0]);
            Assert.IsNull(messages[1].Trailing, "Trailing is not null.");
        }
        public void Deserialize_TestSingleMessage_msg2()
        {
            var parser  = new IRCParser();
            var message = parser.Deserialize(msg2)[0];

            Assert.IsNotNull(message, "IRC msg is null.");
            Assert.IsNull(message.Tags, "Tags is not null.");
            Assert.AreEqual("[email protected]", message.Prefix);
            Assert.AreEqual("FOO", message.Command, "Command is not equal msg2.");
            Assert.IsNull(message.Middle, "Middle is not null");
            Assert.IsNull(message.Trailing, "Trailing is not null.");
        }
        public void Deserialize_TestSingleMessage_msg5()
        {
            var parser  = new IRCParser();
            var message = parser.Deserialize(msg5)[0];

            Assert.IsNotNull(message, "IRC msg is null.");
            Assert.IsNull(message.Tags, "Tags is not null.");
            Assert.IsNull(message.Prefix, $"Prefix is not null. Prefix = '{message.Prefix}'");
            Assert.AreEqual("FOO", message.Command, "Command is not equal msg5.");
            Assert.IsNull(message.Middle, "Middle is not null");
            Assert.AreEqual("This is a test", message.Trailing);
        }
        public void Deserialize_TestSingleMessage_msg0()
        {
            var parser  = new IRCParser();
            var message = parser.Deserialize(msg0)[0];

            Assert.IsNotNull(message);
            Assert.AreEqual("super", message.Tags["test"]);
            Assert.AreEqual("0", message.Tags["single"]);
            Assert.AreEqual("[email protected]", message.Prefix);
            Assert.AreEqual("FOO", message.Command, "Command is not equal msg0.");
            Assert.IsNull(message.Middle, "Middle is not null");
            Assert.AreEqual("This is a test", message.Trailing);
        }
        public void Deserialize_TestSingleMessage_msg7()
        {
            var parser  = new IRCParser();
            var message = parser.Deserialize(msg7)[0];

            Assert.IsNotNull(message, "IRC msg is null.");
            Assert.IsNull(message.Tags, "Tags is not null.");
            Assert.AreEqual("[email protected]", message.Prefix);
            Assert.AreEqual("JOIN", message.Command, "Command is not equal msg2.");
            Assert.AreEqual(1, message.Middle.Length);
            Assert.AreEqual("#qwerty", message.Middle[0]);
            Assert.IsNull(message.Trailing, "Trailing is not null.");
        }
        public void Deserialize_TestSingleMessage_msg4()
        {
            var parser  = new IRCParser();
            var message = parser.Deserialize(msg4)[0];

            Assert.IsNotNull(message, "IRC msg is null.");
            Assert.IsNull(message.Tags, "Tags is not null.");
            Assert.IsNull(message.Prefix, $"Prefix is not null. Prefix = '{message.Prefix}'");
            Assert.AreEqual("FOO", message.Command, "Command is not equal msg4.");
            Assert.AreEqual(1, message.Middle.Length);
            Assert.AreEqual("qwerty", message.Middle[0]);
            Assert.IsNull(message.Trailing, "Trailing is not null.");
        }
        public void Deserialize_TestSingleMessage_msg3()
        {
            var parser  = new IRCParser();
            var message = parser.Deserialize(msg3)[0];

            Assert.IsNotNull(message, "IRC msg is null.");
            Assert.AreEqual("super", message.Tags["test"]);
            Assert.AreEqual("0", message.Tags["single"]);
            Assert.IsNull(message.Prefix, $"Prefix is not null. Prefix = '{message.Prefix}'");
            Assert.AreEqual("FOO", message.Command, "Command is not equal msg3.");
            Assert.IsNull(message.Middle, "Middle is not null");
            Assert.IsNull(message.Trailing, "Trailing is not null.");
        }