ircsharp/IRCSharp.Tests/State/Who.cs

63 lines
2.0 KiB
C#

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);
}
}
}