···11-using Microsoft.VisualStudio.TestTools.UnitTesting;
11+using System.Collections.Generic;
22+using IrcTokens;
33+using Microsoft.VisualStudio.TestTools.UnitTesting;
2435namespace IrcStates.Tests
46{
57 [TestClass]
68 public class Motd
79 {
1010+ [TestMethod]
1111+ public void MessageOfTheDay()
1212+ {
1313+ var server = new Server("test");
1414+ server.ParseTokens(new Line("001 nickname"));
1515+ server.ParseTokens(new Line("375 * :start of motd"));
1616+ server.ParseTokens(new Line("372 * :first line of motd"));
1717+ server.ParseTokens(new Line("372 * :second line of motd"));
1818+1919+ CollectionAssert.AreEqual(new List<string> {"start of motd", "first line of motd", "second line of motd"},
2020+ server.Motd);
2121+ }
822 }
923}
+53-1
IrcStates/Tests/Who.cs
···11-using Microsoft.VisualStudio.TestTools.UnitTesting;
11+using IrcTokens;
22+using Microsoft.VisualStudio.TestTools.UnitTesting;
2334namespace IrcStates.Tests
45{
56 [TestClass]
67 public class Who
78 {
99+ private Server _server;
1010+1111+ [TestInitialize]
1212+ public void TestInitialize()
1313+ {
1414+ _server = new Server("test");
1515+ _server.ParseTokens(new Line("001 nickname"));
1616+ _server.ParseTokens(new Line(":nickname JOIN #chan"));
1717+ }
1818+1919+ [TestMethod]
2020+ public void WhoResponse()
2121+ {
2222+ _server.ParseTokens(new Line("352 * #chan user host server nickname * :0 real"));
2323+ var user = _server.Users["nickname"];
2424+2525+ Assert.AreEqual("user", user.UserName);
2626+ Assert.AreEqual("host", _server.HostName);
2727+ Assert.AreEqual("real", user.RealName);
2828+2929+ Assert.AreEqual(user.UserName, _server.UserName);
3030+ Assert.AreEqual(user.HostName, _server.HostName);
3131+ Assert.AreEqual(user.RealName, _server.RealName);
3232+ }
3333+3434+ [TestMethod]
3535+ public void Whox()
3636+ {
3737+ _server.ParseTokens(new Line($"354 * {Server.WhoType} user realip host nickname account :real"));
3838+ var user = _server.Users["nickname"];
3939+4040+ Assert.AreEqual("user", user.UserName);
4141+ Assert.AreEqual("host", user.HostName);
4242+ Assert.AreEqual("real", user.RealName);
4343+ Assert.AreEqual("account", user.Account);
4444+4545+ Assert.AreEqual(user.UserName, _server.UserName);
4646+ Assert.AreEqual(user.HostName, _server.HostName);
4747+ Assert.AreEqual(user.RealName, _server.RealName);
4848+ Assert.AreEqual(user.Account, _server.Account);
4949+ }
5050+5151+ [TestMethod]
5252+ public void WhoxNoAccount()
5353+ {
5454+ _server.ParseTokens(new Line($"354 * {Server.WhoType} user realip host nickname 0 :real"));
5555+ var user = _server.Users["nickname"];
5656+5757+ Assert.IsNull(user.Account);
5858+ Assert.AreEqual(user.Account, _server.Account);
5959+ }
860 }
961}
+1-1
README.md
···11# IrcSharp
2233-[](https://drone.tildegit.org/ben/irctokens)
33+[](https://drone.tildegit.org/ben/ircsharp)
4455this is a collection of c\# projects to tokenize, parse, and maintain
66state for IRC clients.