using IRCTokens; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace IRCStates.Tests { [TestClass] public class Casemap { [TestMethod] public void Rfc1459() { var lower = IRCStates.Casemap.CaseFold(IRCStates.Casemap.CaseMapping.Rfc1459, @"ÀTEST[]~\"); Assert.AreEqual("Àtest{}^|", lower); } [TestMethod] public void Ascii() { var lower = IRCStates.Casemap.CaseFold(IRCStates.Casemap.CaseMapping.Ascii, @"ÀTEST[]~\"); Assert.AreEqual(@"Àtest[]~\", lower); } [TestMethod] public void CommandJoin() { var server = new Server("test"); server.Parse(new Line("001 nickname")); server.Parse(new Line(":Nickname JOIN #Chan")); server.Parse(new Line(":Other JOIN #Chan")); Assert.IsTrue(server.Users.ContainsKey("nickname")); Assert.IsFalse(server.Users.ContainsKey("Nickname")); Assert.IsTrue(server.Users.ContainsKey("other")); Assert.IsFalse(server.Users.ContainsKey("Other")); Assert.IsTrue(server.Channels.ContainsKey("#chan")); Assert.IsFalse(server.Channels.ContainsKey("#Chan")); var channel = server.Channels["#chan"]; Assert.AreEqual("#Chan", channel.Name); } [TestMethod] public void CommandNick() { var server = new Server("test"); server.Parse(new Line("001 nickname")); server.Parse(new Line(":nickname JOIN #chan")); var user = server.Users["nickname"]; server.Parse(new Line(":nickname NICK NewNickname")); Assert.AreEqual(1, server.Users.Count); Assert.IsTrue(server.Users.ContainsKey("newnickname")); Assert.AreEqual("NewNickname", user.NickName); Assert.AreEqual("newnickname", user.NickNameLower); Assert.AreEqual("NewNickname", server.NickName); Assert.AreEqual("newnickname", server.NickNameLower); } } }