rename server.ParseTokens to .Parse()

This commit is contained in:
Ben Harris 2020-05-13 14:20:47 -04:00
parent f6f3e7e0c5
commit ba63e42be4
11 changed files with 194 additions and 194 deletions

View File

@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
@ -75,7 +75,7 @@ namespace IrcStates
return lines.Select(l => (l, ParseTokens(l))).ToList();
}
public Emit ParseTokens(Line line)
public Emit Parse(Line line)
{
if (line == null || !Handlers.ContainsKey(line.Command)) return null;
var ret = new Emit();

View File

@ -20,16 +20,16 @@ namespace IrcStates.Tests
{
Assert.IsFalse(_server.HasCap);
CollectionAssert.AreEqual(new Dictionary<string, string>(), _server.AvailableCaps);
_server.ParseTokens(new Line("CAP * LS :a b"));
_server.Parse(new Line("CAP * LS :a b"));
CollectionAssert.AreEqual(new Dictionary<string, string> {{"a", ""}, {"b", ""}}, _server.AvailableCaps);
}
[TestMethod]
public void LSTwoLines()
{
_server.ParseTokens(new Line("CAP * LS * :a b"));
_server.Parse(new Line("CAP * LS * :a b"));
CollectionAssert.AreEqual(new Dictionary<string, string>(), _server.AvailableCaps);
_server.ParseTokens(new Line("CAP * LS :c"));
_server.Parse(new Line("CAP * LS :c"));
CollectionAssert.AreEqual(new Dictionary<string, string> {{"a", ""}, {"b", ""}, {"c", ""}},
_server.AvailableCaps);
}
@ -37,7 +37,7 @@ namespace IrcStates.Tests
[TestMethod]
public void LSValues()
{
_server.ParseTokens(new Line("CAP * LS :a b= c=1"));
_server.Parse(new Line("CAP * LS :a b= c=1"));
CollectionAssert.AreEqual(new Dictionary<string, string> {{"a", ""}, {"b", ""}, {"c", "1"}},
_server.AvailableCaps);
}
@ -45,48 +45,48 @@ namespace IrcStates.Tests
[TestMethod]
public void ACKOneLine()
{
_server.ParseTokens(new Line("CAP * LS :a b"));
_server.ParseTokens(new Line("CAP * ACK :a b"));
_server.Parse(new Line("CAP * LS :a b"));
_server.Parse(new Line("CAP * ACK :a b"));
CollectionAssert.AreEqual(new List<string> {"a", "b"}, _server.AgreedCaps);
}
[TestMethod]
public void ACKTwoLines()
{
_server.ParseTokens(new Line("CAP * LS :a b c"));
_server.ParseTokens(new Line("CAP * ACK * :a b"));
_server.ParseTokens(new Line("CAP * ACK :c"));
_server.Parse(new Line("CAP * LS :a b c"));
_server.Parse(new Line("CAP * ACK * :a b"));
_server.Parse(new Line("CAP * ACK :c"));
CollectionAssert.AreEqual(new List<string> {"a", "b", "c"}, _server.AgreedCaps);
}
[TestMethod]
public void ACKNotLS()
{
_server.ParseTokens(new Line("CAP * LS a"));
_server.ParseTokens(new Line("CAP * ACK b"));
_server.Parse(new Line("CAP * LS a"));
_server.Parse(new Line("CAP * ACK b"));
CollectionAssert.AreEqual(new List<string>(), _server.AgreedCaps);
}
[TestMethod]
public void NEWNoLS()
{
_server.ParseTokens(new Line("CAP * NEW :a"));
_server.Parse(new Line("CAP * NEW :a"));
CollectionAssert.AreEqual(new Dictionary<string, string> {{"a", ""}}, _server.AvailableCaps);
}
[TestMethod]
public void NEWOneLine()
{
_server.ParseTokens(new Line("CAP * LS :a"));
_server.ParseTokens(new Line("CAP * NEW :b"));
_server.Parse(new Line("CAP * LS :a"));
_server.Parse(new Line("CAP * NEW :b"));
CollectionAssert.AreEqual(new Dictionary<string, string> {{"a", ""}, {"b", ""}}, _server.AvailableCaps);
}
[TestMethod]
public void NEWTwoLines()
{
_server.ParseTokens(new Line("CAP * LS :a"));
_server.ParseTokens(new Line("CAP * NEW :b c"));
_server.Parse(new Line("CAP * LS :a"));
_server.Parse(new Line("CAP * NEW :b c"));
CollectionAssert.AreEqual(new Dictionary<string, string> {{"a", ""}, {"b", ""}, {"c", ""}},
_server.AvailableCaps);
}
@ -94,15 +94,15 @@ namespace IrcStates.Tests
[TestMethod]
public void DELNotAcked()
{
_server.ParseTokens(new Line("CAP * DEL a"));
_server.Parse(new Line("CAP * DEL a"));
}
[TestMethod]
public void DELOneLS()
{
_server.ParseTokens(new Line("CAP * LS :a"));
_server.ParseTokens(new Line("CAP * ACK :a"));
_server.ParseTokens(new Line("CAP * DEL :a"));
_server.Parse(new Line("CAP * LS :a"));
_server.Parse(new Line("CAP * ACK :a"));
_server.Parse(new Line("CAP * DEL :a"));
CollectionAssert.AreEqual(new Dictionary<string, string>(), _server.AvailableCaps);
CollectionAssert.AreEqual(new List<string>(), _server.AgreedCaps);
}
@ -110,9 +110,9 @@ namespace IrcStates.Tests
[TestMethod]
public void DELTwoLS()
{
_server.ParseTokens(new Line("CAP * LS :a b"));
_server.ParseTokens(new Line("CAP * ACK :a b"));
_server.ParseTokens(new Line("CAP * DEL :a"));
_server.Parse(new Line("CAP * LS :a b"));
_server.Parse(new Line("CAP * ACK :a b"));
_server.Parse(new Line("CAP * DEL :a"));
CollectionAssert.AreEqual(new Dictionary<string, string> {{"b", ""}}, _server.AvailableCaps);
CollectionAssert.AreEqual(new List<string> {"b"}, _server.AgreedCaps);
}
@ -120,9 +120,9 @@ namespace IrcStates.Tests
[TestMethod]
public void DELTwoDEL()
{
_server.ParseTokens(new Line("CAP * LS :a b"));
_server.ParseTokens(new Line("CAP * ACK :a b"));
_server.ParseTokens(new Line("CAP * DEL :a b"));
_server.Parse(new Line("CAP * LS :a b"));
_server.Parse(new Line("CAP * ACK :a b"));
_server.Parse(new Line("CAP * DEL :a b"));
CollectionAssert.AreEqual(new Dictionary<string, string>(), _server.AvailableCaps);
CollectionAssert.AreEqual(new List<string>(), _server.AgreedCaps);
}

View File

@ -24,9 +24,9 @@ namespace IrcStates.Tests
public void CommandJoin()
{
var server = new Server("test");
server.ParseTokens(new Line("001 nickname"));
server.ParseTokens(new Line(":Nickname JOIN #Chan"));
server.ParseTokens(new Line(":Other JOIN #Chan"));
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"));
@ -43,10 +43,10 @@ namespace IrcStates.Tests
public void CommandNick()
{
var server = new Server("test");
server.ParseTokens(new Line("001 nickname"));
server.ParseTokens(new Line(":nickname JOIN #chan"));
server.Parse(new Line("001 nickname"));
server.Parse(new Line(":nickname JOIN #chan"));
var user = server.Users["nickname"];
server.ParseTokens(new Line(":nickname NICK NewNickname"));
server.Parse(new Line(":nickname NICK NewNickname"));
Assert.AreEqual(1, server.Users.Count);
Assert.IsTrue(server.Users.ContainsKey("newnickname"));
Assert.AreEqual("NewNickname", user.NickName);

View File

@ -15,8 +15,8 @@ namespace IrcStates.Tests
public void TestInitialize()
{
_server = new Server("test");
_server.ParseTokens(new Line("001 nickname"));
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("001 nickname"));
_server.Parse(new Line(":nickname JOIN #chan"));
}
[TestMethod]
@ -37,7 +37,7 @@ namespace IrcStates.Tests
[TestMethod]
public void JoinOther()
{
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.Parse(new Line(":other JOIN #chan"));
Assert.AreEqual(2, _server.Users.Count);
Assert.IsTrue(_server.Users.ContainsKey("other"));
@ -52,7 +52,7 @@ namespace IrcStates.Tests
[TestMethod]
public void PartSelf()
{
_server.ParseTokens(new Line(":nickname PART #chan"));
_server.Parse(new Line(":nickname PART #chan"));
Assert.AreEqual(0, _server.Users.Count);
Assert.AreEqual(0, _server.Channels.Count);
@ -61,8 +61,8 @@ namespace IrcStates.Tests
[TestMethod]
public void PartOther()
{
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.ParseTokens(new Line(":other PART #chan"));
_server.Parse(new Line(":other JOIN #chan"));
_server.Parse(new Line(":other PART #chan"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
@ -77,7 +77,7 @@ namespace IrcStates.Tests
[TestMethod]
public void KickSelf()
{
_server.ParseTokens(new Line(":nickname KICK #chan nickname"));
_server.Parse(new Line(":nickname KICK #chan nickname"));
Assert.AreEqual(0, _server.Users.Count);
Assert.AreEqual(0, _server.Channels.Count);
@ -86,8 +86,8 @@ namespace IrcStates.Tests
[TestMethod]
public void KickOther()
{
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.ParseTokens(new Line(":nickname KICK #chan other"));
_server.Parse(new Line(":other JOIN #chan"));
_server.Parse(new Line(":nickname KICK #chan other"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
@ -103,7 +103,7 @@ namespace IrcStates.Tests
[TestMethod]
public void TopicText()
{
_server.ParseTokens(new Line("332 * #chan :test"));
_server.Parse(new Line("332 * #chan :test"));
Assert.AreEqual("test", _server.Channels["#chan"].Topic);
}
@ -111,7 +111,7 @@ namespace IrcStates.Tests
public void TopicSetByAt()
{
var dt = DateTimeOffset.FromUnixTimeSeconds(1584023277).DateTime;
_server.ParseTokens(new Line("333 * #chan other 1584023277"));
_server.Parse(new Line("333 * #chan other 1584023277"));
var channel = _server.Channels["#chan"];
@ -122,21 +122,21 @@ namespace IrcStates.Tests
[TestMethod]
public void TopicCommand()
{
_server.ParseTokens(new Line("TOPIC #chan :hello there"));
_server.Parse(new Line("TOPIC #chan :hello there"));
Assert.AreEqual("hello there", _server.Channels["#chan"].Topic);
}
[TestMethod]
public void CreationDate()
{
_server.ParseTokens(new Line("329 * #chan 1584041889"));
_server.Parse(new Line("329 * #chan 1584041889"));
Assert.AreEqual(DateTimeOffset.FromUnixTimeSeconds(1584041889).DateTime, _server.Channels["#chan"].Created);
}
[TestMethod]
public void NamesCommand()
{
_server.ParseTokens(new Line("353 * * #chan :nickname @+other"));
_server.Parse(new Line("353 * * #chan :nickname @+other"));
Assert.IsTrue(_server.Users.ContainsKey("nickname"));
Assert.IsTrue(_server.Users.ContainsKey("other"));
@ -157,7 +157,7 @@ namespace IrcStates.Tests
[TestMethod]
public void UserhostInNames()
{
_server.ParseTokens(new Line("353 * * #chan :nickname!user@host other@user2@host2"));
_server.Parse(new Line("353 * * #chan :nickname!user@host other@user2@host2"));
Assert.AreEqual("user", _server.UserName);
Assert.AreEqual("host", _server.HostName);
@ -172,7 +172,7 @@ namespace IrcStates.Tests
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
var chanUser = channel.Users[user.NickNameLower];
_server.ParseTokens(new Line(":nickname NICK nickname2"));
_server.Parse(new Line(":nickname NICK nickname2"));
CollectionAssert.AreEqual(new Dictionary<string, ChannelUser> {{user.NickNameLower, chanUser}},
channel.Users);
}

View File

@ -13,20 +13,20 @@ namespace IrcStates.Tests
public void TestInitialize()
{
_server = new Server("test");
_server.ParseTokens(new Line("001 nickname"));
_server.Parse(new Line("001 nickname"));
}
[TestMethod]
public void EmitJoin()
{
var emit = _server.ParseTokens(new Line(":nickname JOIN #chan"));
var emit = _server.Parse(new Line(":nickname JOIN #chan"));
Assert.AreEqual("JOIN", emit.Command);
Assert.IsTrue(emit.Self);
Assert.AreEqual(_server.Users["nickname"], emit.User);
Assert.AreEqual(_server.Channels["#chan"], emit.Channel);
emit = _server.ParseTokens(new Line(":other JOIN #chan"));
emit = _server.Parse(new Line(":other JOIN #chan"));
Assert.IsNotNull(emit);
Assert.AreEqual("JOIN", emit.Command);
Assert.IsFalse(emit.Self);
@ -37,8 +37,8 @@ namespace IrcStates.Tests
[TestMethod]
public void EmitPrivmsg()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
var emit = _server.ParseTokens(new Line(":nickname PRIVMSG #chan :hello"));
_server.Parse(new Line(":nickname JOIN #chan"));
var emit = _server.Parse(new Line(":nickname PRIVMSG #chan :hello"));
Assert.IsNotNull(emit);
Assert.AreEqual("PRIVMSG", emit.Command);
@ -47,8 +47,8 @@ namespace IrcStates.Tests
Assert.AreEqual(_server.Users["nickname"], emit.User);
Assert.AreEqual(_server.Channels["#chan"], emit.Channel);
_server.ParseTokens(new Line(":other JOIN #chan"));
emit = _server.ParseTokens(new Line(":other PRIVMSG #chan :hello2"));
_server.Parse(new Line(":other JOIN #chan"));
emit = _server.Parse(new Line(":other PRIVMSG #chan :hello2"));
Assert.IsNotNull(emit);
Assert.AreEqual("PRIVMSG", emit.Command);
@ -61,8 +61,8 @@ namespace IrcStates.Tests
[TestMethod]
public void EmitPrivmsgNoJoin()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
var emit = _server.ParseTokens(new Line(":other PRIVMSG #chan :hello"));
_server.Parse(new Line(":nickname JOIN #chan"));
var emit = _server.Parse(new Line(":other PRIVMSG #chan :hello"));
Assert.IsNotNull(emit);
Assert.AreEqual("PRIVMSG", emit.Command);
@ -77,13 +77,13 @@ namespace IrcStates.Tests
[TestMethod]
public void EmitKick()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":nickname JOIN #chan"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.Parse(new Line(":other JOIN #chan"));
var userOther = _server.Users["other"];
var emit = _server.ParseTokens(new Line(":nickname KICK #chan other :reason"));
var emit = _server.Parse(new Line(":nickname KICK #chan other :reason"));
Assert.IsNotNull(emit);
Assert.AreEqual("KICK", emit.Command);
@ -97,7 +97,7 @@ namespace IrcStates.Tests
[TestMethod]
public void EmitMode()
{
var emit = _server.ParseTokens(new Line("MODE nickname x+i-i+wi-wi"));
var emit = _server.Parse(new Line("MODE nickname x+i-i+wi-wi"));
Assert.IsNotNull(emit);
Assert.AreEqual("MODE", emit.Command);

View File

@ -15,7 +15,7 @@ namespace IrcStates.Tests
public void TestInitialize()
{
_server = new Server("test");
_server.ParseTokens(new Line("001 nickname"));
_server.Parse(new Line("001 nickname"));
}
[TestMethod]
@ -34,7 +34,7 @@ namespace IrcStates.Tests
"t"
}, _server.ISupport.ChanModes.SettingDModes);
_server.ParseTokens(new Line("005 * CHANMODES=a,b,c,d *"));
_server.Parse(new Line("005 * CHANMODES=a,b,c,d *"));
CollectionAssert.AreEqual(new List<string> {"a"}, _server.ISupport.ChanModes.ListModes);
CollectionAssert.AreEqual(new List<string> {"b"}, _server.ISupport.ChanModes.SettingBModes);
@ -53,7 +53,7 @@ namespace IrcStates.Tests
Assert.AreEqual("o", _server.ISupport.Prefix.FromPrefix("@"));
Assert.IsNull(_server.ISupport.Prefix.FromPrefix("&"));
_server.ParseTokens(new Line("005 * PREFIX=(qaohv)~&#%+ *"));
_server.Parse(new Line("005 * PREFIX=(qaohv)~&#%+ *"));
CollectionAssert.AreEqual(new List<string>
{
"q",
@ -78,7 +78,7 @@ namespace IrcStates.Tests
public void ChanTypes()
{
CollectionAssert.AreEqual(new List<string> {"#"}, _server.ISupport.ChanTypes);
_server.ParseTokens(new Line("005 * CHANTYPES=#& *"));
_server.Parse(new Line("005 * CHANTYPES=#& *"));
CollectionAssert.AreEqual(new List<string> {"#", "&"}, _server.ISupport.ChanTypes);
}
@ -87,10 +87,10 @@ namespace IrcStates.Tests
{
Assert.AreEqual(3, _server.ISupport.Modes);
_server.ParseTokens(new Line("005 * MODES *"));
_server.Parse(new Line("005 * MODES *"));
Assert.AreEqual(-1, _server.ISupport.Modes);
_server.ParseTokens(new Line("005 * MODES=5 *"));
_server.Parse(new Line("005 * MODES=5 *"));
Assert.AreEqual(5, _server.ISupport.Modes);
}
@ -98,7 +98,7 @@ namespace IrcStates.Tests
public void Rfc1459()
{
Assert.AreEqual(IrcStates.Casemap.CaseMapping.Rfc1459, _server.ISupport.CaseMapping);
_server.ParseTokens(new Line("005 * CASEMAPPING=rfc1459 *"));
_server.Parse(new Line("005 * CASEMAPPING=rfc1459 *"));
Assert.AreEqual(IrcStates.Casemap.CaseMapping.Rfc1459, _server.ISupport.CaseMapping);
var lower = _server.CaseFold(@"ÀTEST[]~\");
Assert.AreEqual("Àtest{}^|", lower);
@ -107,7 +107,7 @@ namespace IrcStates.Tests
[TestMethod]
public void Ascii()
{
_server.ParseTokens(new Line("005 * CASEMAPPING=ascii *"));
_server.Parse(new Line("005 * CASEMAPPING=ascii *"));
Assert.AreEqual(IrcStates.Casemap.CaseMapping.Ascii, _server.ISupport.CaseMapping);
var lower = _server.CaseFold(@"ÀTEST[]~\");
Assert.AreEqual(@"Àtest[]~\", lower);
@ -116,7 +116,7 @@ namespace IrcStates.Tests
[TestMethod]
public void FallbackToRfc1459()
{
_server.ParseTokens(new Line("005 * CASEMAPPING=nonexistent *"));
_server.Parse(new Line("005 * CASEMAPPING=nonexistent *"));
Assert.AreEqual(IrcStates.Casemap.CaseMapping.Rfc1459, _server.ISupport.CaseMapping);
var lower = _server.CaseFold(@"ÀTEST[]~\");
Assert.AreEqual("Àtest{}^|", lower);
@ -126,7 +126,7 @@ namespace IrcStates.Tests
public void Network()
{
Assert.IsNull(_server.ISupport.Network);
_server.ParseTokens(new Line("005 * NETWORK=testnet *"));
_server.Parse(new Line("005 * NETWORK=testnet *"));
Assert.AreEqual("testnet", _server.ISupport.Network);
}
@ -134,7 +134,7 @@ namespace IrcStates.Tests
public void StatusMsg()
{
CollectionAssert.AreEqual(new List<string>(), _server.ISupport.StatusMsg);
_server.ParseTokens(new Line("005 * STATUSMSG=&@ *"));
_server.Parse(new Line("005 * STATUSMSG=&@ *"));
CollectionAssert.AreEqual(new List<string> {"&", "@"}, _server.ISupport.StatusMsg);
}
@ -143,10 +143,10 @@ namespace IrcStates.Tests
{
Assert.IsNull(_server.ISupport.CallerId);
_server.ParseTokens(new Line("005 * CALLERID=U *"));
_server.Parse(new Line("005 * CALLERID=U *"));
Assert.AreEqual("U", _server.ISupport.CallerId);
_server.ParseTokens(new Line("005 * CALLERID *"));
_server.Parse(new Line("005 * CALLERID *"));
Assert.AreEqual("g", _server.ISupport.CallerId);
}
@ -155,10 +155,10 @@ namespace IrcStates.Tests
{
Assert.IsNull(_server.ISupport.Excepts);
_server.ParseTokens(new Line("005 * EXCEPTS=U *"));
_server.Parse(new Line("005 * EXCEPTS=U *"));
Assert.AreEqual("U", _server.ISupport.Excepts);
_server.ParseTokens(new Line("005 * EXCEPTS *"));
_server.Parse(new Line("005 * EXCEPTS *"));
Assert.AreEqual("e", _server.ISupport.Excepts);
}
@ -167,10 +167,10 @@ namespace IrcStates.Tests
{
Assert.IsNull(_server.ISupport.Invex);
_server.ParseTokens(new Line("005 * INVEX=U *"));
_server.Parse(new Line("005 * INVEX=U *"));
Assert.AreEqual("U", _server.ISupport.Invex);
_server.ParseTokens(new Line("005 * INVEX *"));
_server.Parse(new Line("005 * INVEX *"));
Assert.AreEqual("I", _server.ISupport.Invex);
}
@ -179,7 +179,7 @@ namespace IrcStates.Tests
{
Assert.IsFalse(_server.ISupport.Whox);
_server.ParseTokens(new Line("005 * WHOX *"));
_server.Parse(new Line("005 * WHOX *"));
Assert.IsTrue(_server.ISupport.Whox);
}
@ -188,10 +188,10 @@ namespace IrcStates.Tests
{
Assert.IsNull(_server.ISupport.Monitor);
_server.ParseTokens(new Line("005 * MONITOR=123 *"));
_server.Parse(new Line("005 * MONITOR=123 *"));
Assert.AreEqual(123, _server.ISupport.Monitor);
_server.ParseTokens(new Line("005 * MONITOR *"));
_server.Parse(new Line("005 * MONITOR *"));
Assert.AreEqual(-1, _server.ISupport.Monitor);
}
@ -200,10 +200,10 @@ namespace IrcStates.Tests
{
Assert.IsNull(_server.ISupport.Watch);
_server.ParseTokens(new Line("005 * WATCH=123 *"));
_server.Parse(new Line("005 * WATCH=123 *"));
Assert.AreEqual(123, _server.ISupport.Watch);
_server.ParseTokens(new Line("005 * WATCH *"));
_server.Parse(new Line("005 * WATCH *"));
Assert.AreEqual(-1, _server.ISupport.Watch);
}
}

View File

@ -13,29 +13,29 @@ namespace IrcStates.Tests
public void TestInitialize()
{
_server = new Server("test");
_server.ParseTokens(new Line("001 nickname"));
_server.Parse(new Line("001 nickname"));
}
[TestMethod]
public void UModeAdd()
{
_server.ParseTokens(new Line("MODE nickname +i"));
_server.Parse(new Line("MODE nickname +i"));
CollectionAssert.AreEqual(new List<string> {"i"}, _server.Modes);
}
[TestMethod]
public void UModeRemove()
{
_server.ParseTokens(new Line("MODE nickname +i"));
_server.ParseTokens(new Line("MODE nickname -i"));
_server.Parse(new Line("MODE nickname +i"));
_server.Parse(new Line("MODE nickname -i"));
CollectionAssert.AreEqual(new List<string>(), _server.Modes);
}
[TestMethod]
public void PrefixAdd()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +ov nickname nickname"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +ov nickname nickname"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
@ -46,9 +46,9 @@ namespace IrcStates.Tests
[TestMethod]
public void PrefixRemove()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +ov nickname nickname"));
_server.ParseTokens(new Line("MODE #chan -ov nickname nickname"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +ov nickname nickname"));
_server.Parse(new Line("MODE #chan -ov nickname nickname"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
@ -59,8 +59,8 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelListAdd()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +b asd!*@*"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +b asd!*@*"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, List<string>> {{"b", new List<string> {"asd!*@*"}}},
@ -70,9 +70,9 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelListRemove()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +b asd!*@*"));
_server.ParseTokens(new Line("MODE #chan -b asd!*@*"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +b asd!*@*"));
_server.Parse(new Line("MODE #chan -b asd!*@*"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, List<string>>(), channel.ListModes);
@ -81,8 +81,8 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelTypeBAdd()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +k password"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +k password"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, string> {{"k", "password"}}, channel.Modes);
@ -91,9 +91,9 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelTypeBRemove()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +k password"));
_server.ParseTokens(new Line("MODE #chan -k *"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +k password"));
_server.Parse(new Line("MODE #chan -k *"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, string>(), channel.Modes);
@ -102,8 +102,8 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelTypeCAdd()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +l 100"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +l 100"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, string> {{"l", "100"}}, channel.Modes);
@ -112,9 +112,9 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelTypeCRemove()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +l 100"));
_server.ParseTokens(new Line("MODE #chan -l"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +l 100"));
_server.Parse(new Line("MODE #chan -l"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, string>(), channel.Modes);
@ -123,8 +123,8 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelTypeDAdd()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +i"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +i"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, string> {{"i", null}}, channel.Modes);
@ -133,9 +133,9 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelTypeDRemove()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("MODE #chan +i"));
_server.ParseTokens(new Line("MODE #chan -i"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("MODE #chan +i"));
_server.Parse(new Line("MODE #chan -i"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, string>(), channel.Modes);
@ -144,8 +144,8 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelNumeric()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("324 * #chan +bkli *!*@* pass 10"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("324 * #chan +bkli *!*@* pass 10"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, string> {{"k", "pass"}, {"l", "10"}, {"i", null}},
@ -157,8 +157,8 @@ namespace IrcStates.Tests
[TestMethod]
public void ChannelNumericWithoutPlus()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("324 * #chan il 10"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("324 * #chan il 10"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary<string, string> {{"i", null}, {"l", "10"}}, channel.Modes);
@ -167,14 +167,14 @@ namespace IrcStates.Tests
[TestMethod]
public void UserNumeric()
{
_server.ParseTokens(new Line("221 * +iw"));
_server.Parse(new Line("221 * +iw"));
CollectionAssert.AreEqual(new List<string> {"i", "w"}, _server.Modes);
}
[TestMethod]
public void UserNumericWithoutPlus()
{
_server.ParseTokens(new Line("221 * iw"));
_server.Parse(new Line("221 * iw"));
CollectionAssert.AreEqual(new List<string> {"i", "w"}, _server.Modes);
}
}

View File

@ -11,10 +11,10 @@ namespace IrcStates.Tests
public void MessageOfTheDay()
{
var server = new Server("test");
server.ParseTokens(new Line("001 nickname"));
server.ParseTokens(new Line("375 * :start of motd"));
server.ParseTokens(new Line("372 * :first line of motd"));
server.ParseTokens(new Line("372 * :second line of motd"));
server.Parse(new Line("001 nickname"));
server.Parse(new Line("375 * :start of motd"));
server.Parse(new Line("372 * :first line of motd"));
server.Parse(new Line("372 * :second line of motd"));
CollectionAssert.AreEqual(new List<string> {"start of motd", "first line of motd", "second line of motd"},
server.Motd);

View File

@ -12,7 +12,7 @@ namespace IrcStates.Tests
public void TestInitialize()
{
_server = new Server("test");
_server.ParseTokens(new Line("900 * nick!user@host account"));
_server.Parse(new Line("900 * nick!user@host account"));
}
[TestMethod]
@ -27,7 +27,7 @@ namespace IrcStates.Tests
[TestMethod]
public void LoggedOut()
{
_server.ParseTokens(new Line("901 * nick1!user1@host1"));
_server.Parse(new Line("901 * nick1!user1@host1"));
Assert.AreEqual("nick1", _server.NickName);
Assert.AreEqual("user1", _server.UserName);

View File

@ -12,20 +12,20 @@ namespace IrcStates.Tests
public void TestInitialize()
{
_server = new Server("test");
_server.ParseTokens(new Line("001 nickname"));
_server.Parse(new Line("001 nickname"));
}
[TestMethod]
public void NicknameChange()
{
_server.ParseTokens(new Line(":nickname NICK nickname2"));
_server.Parse(new Line(":nickname NICK nickname2"));
Assert.AreEqual("nickname2", _server.NickName);
_server.ParseTokens(new Line(":nickname2 JOIN #chan"));
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.Parse(new Line(":nickname2 JOIN #chan"));
_server.Parse(new Line(":other JOIN #chan"));
Assert.IsTrue(_server.Users.ContainsKey("other"));
_server.ParseTokens(new Line(":other NICK other2"));
_server.Parse(new Line(":other NICK other2"));
Assert.IsFalse(_server.Users.ContainsKey("other"));
Assert.IsTrue(_server.Users.ContainsKey("other2"));
}
@ -33,11 +33,11 @@ namespace IrcStates.Tests
[TestMethod]
public void HostmaskJoinBoth()
{
_server.ParseTokens(new Line(":nickname!user@host JOIN #chan"));
_server.Parse(new Line(":nickname!user@host JOIN #chan"));
Assert.AreEqual("user", _server.UserName);
Assert.AreEqual("host", _server.HostName);
_server.ParseTokens(new Line(":other!user@host JOIN #chan"));
_server.Parse(new Line(":other!user@host JOIN #chan"));
var user = _server.Users["other"];
Assert.AreEqual("user", user.UserName);
Assert.AreEqual("host", user.HostName);
@ -46,11 +46,11 @@ namespace IrcStates.Tests
[TestMethod]
public void HostmaskJoinUser()
{
_server.ParseTokens(new Line(":nickname!user JOIN #chan"));
_server.Parse(new Line(":nickname!user JOIN #chan"));
Assert.AreEqual("user", _server.UserName);
Assert.IsNull(_server.HostName);
_server.ParseTokens(new Line(":other!user JOIN #chan"));
_server.Parse(new Line(":other!user JOIN #chan"));
var user = _server.Users["other"];
Assert.AreEqual("user", user.UserName);
Assert.IsNull(user.HostName);
@ -59,11 +59,11 @@ namespace IrcStates.Tests
[TestMethod]
public void HostmaskJoinHost()
{
_server.ParseTokens(new Line(":nickname@host JOIN #chan"));
_server.Parse(new Line(":nickname@host JOIN #chan"));
Assert.IsNull(_server.UserName);
Assert.AreEqual("host", _server.HostName);
_server.ParseTokens(new Line(":other@host JOIN #chan"));
_server.Parse(new Line(":other@host JOIN #chan"));
var user = _server.Users["other"];
Assert.IsNull(user.UserName);
Assert.AreEqual("host", user.HostName);
@ -72,11 +72,11 @@ namespace IrcStates.Tests
[TestMethod]
public void ExtendedJoinWithoutExtendedJoin()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":nickname JOIN #chan"));
Assert.IsNull(_server.Account);
Assert.IsNull(_server.RealName);
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.Parse(new Line(":other JOIN #chan"));
var user = _server.Users["other"];
Assert.IsNull(user.Account);
Assert.IsNull(user.RealName);
@ -85,11 +85,11 @@ namespace IrcStates.Tests
[TestMethod]
public void ExtendedJoinWithAccount()
{
_server.ParseTokens(new Line(":nickname JOIN #chan acc :realname"));
_server.Parse(new Line(":nickname JOIN #chan acc :realname"));
Assert.AreEqual("acc", _server.Account);
Assert.AreEqual("realname", _server.RealName);
_server.ParseTokens(new Line(":other JOIN #chan acc2 :realname2"));
_server.Parse(new Line(":other JOIN #chan acc2 :realname2"));
var user = _server.Users["other"];
Assert.AreEqual("acc2", user.Account);
Assert.AreEqual("realname2", user.RealName);
@ -98,11 +98,11 @@ namespace IrcStates.Tests
[TestMethod]
public void ExtendedJoinWithoutAccount()
{
_server.ParseTokens(new Line(":nickname JOIN #chan * :realname"));
_server.Parse(new Line(":nickname JOIN #chan * :realname"));
Assert.AreEqual("", _server.Account);
Assert.AreEqual("realname", _server.RealName);
_server.ParseTokens(new Line(":other JOIN #chan * :realname2"));
_server.Parse(new Line(":other JOIN #chan * :realname2"));
var user = _server.Users["other"];
Assert.AreEqual("", user.Account);
Assert.AreEqual("realname2", user.RealName);
@ -111,12 +111,12 @@ namespace IrcStates.Tests
[TestMethod]
public void AccountNotifyWithAccount()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line(":nickname ACCOUNT acc"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":nickname ACCOUNT acc"));
Assert.AreEqual("acc", _server.Account);
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.ParseTokens(new Line(":other ACCOUNT acc2"));
_server.Parse(new Line(":other JOIN #chan"));
_server.Parse(new Line(":other ACCOUNT acc2"));
var user = _server.Users["other"];
Assert.AreEqual("acc2", user.Account);
}
@ -124,12 +124,12 @@ namespace IrcStates.Tests
[TestMethod]
public void AccountNotifyWithoutAccount()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line(":nickname ACCOUNT *"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":nickname ACCOUNT *"));
Assert.AreEqual("", _server.Account);
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.ParseTokens(new Line(":other ACCOUNT *"));
_server.Parse(new Line(":other JOIN #chan"));
_server.Parse(new Line(":other ACCOUNT *"));
var user = _server.Users["other"];
Assert.AreEqual("", user.Account);
}
@ -137,12 +137,12 @@ namespace IrcStates.Tests
[TestMethod]
public void HostmaskPrivmsgBoth()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line(":nickname!user@host PRIVMSG #chan :hi"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":nickname!user@host PRIVMSG #chan :hi"));
Assert.AreEqual("user", _server.UserName);
Assert.AreEqual("host", _server.HostName);
_server.ParseTokens(new Line(":other!user@host PRIVMSG #chan :hi"));
_server.Parse(new Line(":other!user@host PRIVMSG #chan :hi"));
var user = _server.Users["other"];
Assert.AreEqual("user", user.UserName);
Assert.AreEqual("host", user.HostName);
@ -151,12 +151,12 @@ namespace IrcStates.Tests
[TestMethod]
public void HostmaskPrivmsgUser()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line(":nickname!user PRIVMSG #chan :hi"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":nickname!user PRIVMSG #chan :hi"));
Assert.AreEqual("user", _server.UserName);
Assert.IsNull(_server.HostName);
_server.ParseTokens(new Line(":other!user PRIVMSG #chan :hi"));
_server.Parse(new Line(":other!user PRIVMSG #chan :hi"));
var user = _server.Users["other"];
Assert.AreEqual("user", user.UserName);
Assert.IsNull(user.HostName);
@ -165,12 +165,12 @@ namespace IrcStates.Tests
[TestMethod]
public void HostmaskPrivmsgHost()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line(":nickname@host PRIVMSG #chan :hi"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":nickname@host PRIVMSG #chan :hi"));
Assert.IsNull(_server.UserName);
Assert.AreEqual("host", _server.HostName);
_server.ParseTokens(new Line(":other@host PRIVMSG #chan :hi"));
_server.Parse(new Line(":other@host PRIVMSG #chan :hi"));
var user = _server.Users["other"];
Assert.IsNull(user.UserName);
Assert.AreEqual("host", user.HostName);
@ -179,7 +179,7 @@ namespace IrcStates.Tests
[TestMethod]
public void VisibleHostWithoutUsername()
{
_server.ParseTokens(new Line("396 * hostname"));
_server.Parse(new Line("396 * hostname"));
Assert.IsNull(_server.UserName);
Assert.AreEqual("hostname", _server.HostName);
}
@ -187,7 +187,7 @@ namespace IrcStates.Tests
[TestMethod]
public void VisibleHostWithUsername()
{
_server.ParseTokens(new Line("396 * username@hostname"));
_server.Parse(new Line("396 * username@hostname"));
Assert.AreEqual("username", _server.UserName);
Assert.AreEqual("hostname", _server.HostName);
}
@ -195,10 +195,10 @@ namespace IrcStates.Tests
[TestMethod]
public void Who()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.ParseTokens(new Line("352 * #chan user host * nickname * :0 real"));
_server.ParseTokens(new Line("352 * #chan user2 host2 * other * :0 real2"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":other JOIN #chan"));
_server.Parse(new Line("352 * #chan user host * nickname * :0 real"));
_server.Parse(new Line("352 * #chan user2 host2 * other * :0 real2"));
Assert.AreEqual("user", _server.UserName);
Assert.AreEqual("host", _server.HostName);
@ -213,13 +213,13 @@ namespace IrcStates.Tests
[TestMethod]
public void Chghost()
{
_server.ParseTokens(new Line(":nickname!user@host JOIN #chan"));
_server.ParseTokens(new Line(":nickname CHGHOST u h"));
_server.Parse(new Line(":nickname!user@host JOIN #chan"));
_server.Parse(new Line(":nickname CHGHOST u h"));
Assert.AreEqual("u", _server.UserName);
Assert.AreEqual("h", _server.HostName);
_server.ParseTokens(new Line(":other!user2@host2 JOIN #chan"));
_server.ParseTokens(new Line(":other CHGHOST u2 h2"));
_server.Parse(new Line(":other!user2@host2 JOIN #chan"));
_server.Parse(new Line(":other CHGHOST u2 h2"));
var user = _server.Users["other"];
Assert.AreEqual("u2", user.UserName);
Assert.AreEqual("h2", user.HostName);
@ -228,15 +228,15 @@ namespace IrcStates.Tests
[TestMethod]
public void Whois()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line("311 * nickname u h * :r"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("311 * nickname u h * :r"));
Assert.AreEqual("u", _server.UserName);
Assert.AreEqual("h", _server.HostName);
Assert.AreEqual("r", _server.RealName);
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.ParseTokens(new Line(":other CHGHOST u2 h2"));
_server.ParseTokens(new Line("311 * other u2 h2 * :r2"));
_server.Parse(new Line(":other JOIN #chan"));
_server.Parse(new Line(":other CHGHOST u2 h2"));
_server.Parse(new Line("311 * other u2 h2 * :r2"));
var user = _server.Users["other"];
Assert.AreEqual("u2", user.UserName);
Assert.AreEqual("h2", user.HostName);
@ -246,14 +246,14 @@ namespace IrcStates.Tests
[TestMethod]
public void AwaySet()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":other JOIN #chan"));
var user = _server.Users["other"];
Assert.IsNull(_server.Away);
Assert.IsNull(user.Away);
_server.ParseTokens(new Line(":nickname AWAY :bye bye"));
_server.ParseTokens(new Line(":other AWAY :ich geh weg"));
_server.Parse(new Line(":nickname AWAY :bye bye"));
_server.Parse(new Line(":other AWAY :ich geh weg"));
Assert.AreEqual("bye bye", _server.Away);
Assert.AreEqual("ich geh weg", user.Away);
}
@ -261,12 +261,12 @@ namespace IrcStates.Tests
[TestMethod]
public void AwayUnset()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.ParseTokens(new Line(":nickname AWAY :bye bye"));
_server.ParseTokens(new Line(":nickname AWAY"));
_server.ParseTokens(new Line(":other AWAY :ich geh weg"));
_server.ParseTokens(new Line(":other AWAY"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":other JOIN #chan"));
_server.Parse(new Line(":nickname AWAY :bye bye"));
_server.Parse(new Line(":nickname AWAY"));
_server.Parse(new Line(":other AWAY :ich geh weg"));
_server.Parse(new Line(":other AWAY"));
var user = _server.Users["other"];
Assert.IsNull(_server.Away);
@ -276,14 +276,14 @@ namespace IrcStates.Tests
[TestMethod]
public void Setname()
{
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.ParseTokens(new Line(":other JOIN #chan"));
_server.Parse(new Line(":nickname JOIN #chan"));
_server.Parse(new Line(":other JOIN #chan"));
var user = _server.Users["other"];
Assert.IsNull(user.RealName);
Assert.IsNull(_server.RealName);
_server.ParseTokens(new Line(":nickname SETNAME :new now know how"));
_server.ParseTokens(new Line(":other SETNAME :tyrannosaurus hex"));
_server.Parse(new Line(":nickname SETNAME :new now know how"));
_server.Parse(new Line(":other SETNAME :tyrannosaurus hex"));
Assert.AreEqual("new now know how", _server.RealName);
Assert.AreEqual("tyrannosaurus hex", user.RealName);
}

View File

@ -12,14 +12,14 @@ namespace IrcStates.Tests
public void TestInitialize()
{
_server = new Server("test");
_server.ParseTokens(new Line("001 nickname"));
_server.ParseTokens(new Line(":nickname JOIN #chan"));
_server.Parse(new Line("001 nickname"));
_server.Parse(new Line(":nickname JOIN #chan"));
}
[TestMethod]
public void WhoResponse()
{
_server.ParseTokens(new Line("352 * #chan user host server nickname * :0 real"));
_server.Parse(new Line("352 * #chan user host server nickname * :0 real"));
var user = _server.Users["nickname"];
Assert.AreEqual("user", user.UserName);
@ -34,7 +34,7 @@ namespace IrcStates.Tests
[TestMethod]
public void Whox()
{
_server.ParseTokens(new Line($"354 * {Server.WhoType} user realip host nickname account :real"));
_server.Parse(new Line($"354 * {Server.WhoType} user realip host nickname account :real"));
var user = _server.Users["nickname"];
Assert.AreEqual("user", user.UserName);
@ -51,7 +51,7 @@ namespace IrcStates.Tests
[TestMethod]
public void WhoxNoAccount()
{
_server.ParseTokens(new Line($"354 * {Server.WhoType} user realip host nickname 0 :real"));
_server.Parse(new Line($"354 * {Server.WhoType} user realip host nickname 0 :real"));
var user = _server.Users["nickname"];
Assert.IsNull(user.Account);