using IRCStates; using IRCTokens; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace IRCSharp.Tests.State { [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); } } }