about summary refs log blame commit diff
path: root/IRCStates/Tests/Who.cs
blob: d091785a8a0a674cfe10ad002c37bf8a0aa80a84 (plain) (tree)
1
2
3
4
5
6
7
8
                   
                                                   
 
                         



                    





                                         

                                                            




                                 
                                                                                       













                                                             
                                                                                                       















                                                             
                                                                                                 




                                                           

     
using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace IRCStates.Tests
{
    [TestClass]
    public class Who
    {
        private Server _server;

        [TestInitialize]
        public void TestInitialize()
        {
            _server = new Server("test");
            _server.Parse(new Line("001 nickname"));
            _server.Parse(new Line(":nickname JOIN #chan"));
        }

        [TestMethod]
        public void WhoResponse()
        {
            _server.Parse(new Line("352 * #chan user host server nickname * :0 real"));
            var user = _server.Users["nickname"];

            Assert.AreEqual("user", user.UserName);
            Assert.AreEqual("host", _server.HostName);
            Assert.AreEqual("real", user.RealName);

            Assert.AreEqual(user.UserName, _server.UserName);
            Assert.AreEqual(user.HostName, _server.HostName);
            Assert.AreEqual(user.RealName, _server.RealName);
        }

        [TestMethod]
        public void Whox()
        {
            _server.Parse(new Line($"354 * {Server.WhoType} user realip host nickname account :real"));
            var user = _server.Users["nickname"];

            Assert.AreEqual("user", user.UserName);
            Assert.AreEqual("host", user.HostName);
            Assert.AreEqual("real", user.RealName);
            Assert.AreEqual("account", user.Account);

            Assert.AreEqual(user.UserName, _server.UserName);
            Assert.AreEqual(user.HostName, _server.HostName);
            Assert.AreEqual(user.RealName, _server.RealName);
            Assert.AreEqual(user.Account, _server.Account);
        }

        [TestMethod]
        public void WhoxNoAccount()
        {
            _server.Parse(new Line($"354 * {Server.WhoType} user realip host nickname 0 :real"));
            var user = _server.Users["nickname"];

            Assert.IsNull(user.Account);
            Assert.AreEqual(user.Account, _server.Account);
        }
    }
}