diff --git a/Examples/States/Client.cs b/Examples/States/Client.cs
index 77d2148..5df69f1 100644
--- a/Examples/States/Client.cs
+++ b/Examples/States/Client.cs
@@ -5,83 +5,68 @@ using System.Threading;
using IRCStates;
using IRCTokens;
-namespace States
+namespace States;
+
+internal class Client(string host, int port, string nick)
{
- internal class Client
+ private readonly byte[] _bytes = new byte[1024];
+ private readonly StatefulEncoder _encoder = new();
+ private readonly Server _server = new("test");
+ private readonly Socket _socket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+
+ private void Send(string raw)
{
- private readonly byte[] _bytes;
- private readonly StatefulEncoder _encoder;
- private readonly string _host;
- private readonly string _nick;
- private readonly int _port;
- private readonly Server _server;
- private readonly Socket _socket;
+ _encoder.Push(new(raw));
+ }
- public Client(string host, int port, string nick)
+ public void Start()
+ {
+ _socket.Connect(host, port);
+ while (!_socket.Connected) Thread.Sleep(1000);
+
+ Send("USER test 0 * test");
+ Send($"NICK {nick}");
+
+ while (true)
{
- _server = new Server("test");
- _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- _encoder = new StatefulEncoder();
- _host = host;
- _port = port;
- _nick = nick;
- _bytes = new byte[1024];
- }
-
- private void Send(string raw)
- {
- _encoder.Push(new Line(raw));
- }
-
- public void Start()
- {
- _socket.Connect(_host, _port);
- while (!_socket.Connected) Thread.Sleep(1000);
-
- Send("USER test 0 * test");
- Send($"NICK {_nick}");
-
- while (true)
+ while (_encoder.PendingBytes.Any())
{
- while (_encoder.PendingBytes.Any())
- {
- foreach (var line in _encoder.Pop(_socket.Send(_encoder.PendingBytes)))
- Console.WriteLine($"> {line.Format()}");
- }
+ foreach (var line in _encoder.Pop(_socket.Send(_encoder.PendingBytes)))
+ Console.WriteLine($"> {line.Format()}");
+ }
- var bytesReceived = _socket.Receive(_bytes);
- if (bytesReceived == 0)
- {
- Console.WriteLine("! disconnected");
- _socket.Shutdown(SocketShutdown.Both);
- _socket.Close();
- break;
- }
+ var bytesReceived = _socket.Receive(_bytes);
+ if (bytesReceived == 0)
+ {
+ Console.WriteLine("! disconnected");
+ _socket.Shutdown(SocketShutdown.Both);
+ _socket.Close();
+ break;
+ }
- var receivedLines = _server.Receive(_bytes, bytesReceived);
- foreach (var (line, _) in receivedLines)
- {
- Console.WriteLine($"< {line.Format()}");
+ var receivedLines = _server.Receive(_bytes, bytesReceived);
+ foreach (var (line, _) in receivedLines)
+ {
+ Console.WriteLine($"< {line.Format()}");
- switch (line.Command)
- {
- case Commands.Privmsg:
- if (line.Params[1].Contains(_server.NickName))
- Send($"PRIVMSG {line.Params[0]} :hi {line.Hostmask.NickName}!");
- break;
- case "PING":
- Send($"PONG :{line.Params[0]}");
- break;
- case Numeric.RPL_WELCOME:
- if (!_server.HasChannel("#irctokens")) Send("JOIN #irctokens");
- break;
- case "INVITE":
- var c = line.Params[1];
- if (!_server.HasChannel(c)) Send($"JOIN {c}");
- break;
- }
+ switch (line.Command)
+ {
+ case Commands.Privmsg:
+ if (line.Params[1].Contains(_server.NickName))
+ Send($"PRIVMSG {line.Params[0]} :hi {line.Hostmask.NickName}!");
+ break;
+ case "PING":
+ Send($"PONG :{line.Params[0]}");
+ break;
+ case Numeric.RPL_WELCOME:
+ if (!_server.HasChannel("#irctokens")) Send("JOIN #irctokens");
+ break;
+ case "INVITE":
+ var c = line.Params[1];
+ if (!_server.HasChannel(c)) Send($"JOIN {c}");
+ break;
}
}
}
}
-}
+}
\ No newline at end of file
diff --git a/Examples/States/Program.cs b/Examples/States/Program.cs
index 3c98b23..1d101e1 100644
--- a/Examples/States/Program.cs
+++ b/Examples/States/Program.cs
@@ -1,11 +1,4 @@
-namespace States
-{
- public static class Program
- {
- private static void Main(string[] args)
- {
- var client = new Client("localhost", 6667, "statesbot");
- client.Start();
- }
- }
-}
+using States;
+
+var client = new Client("localhost", 6667, "statesbot");
+client.Start();
diff --git a/Examples/States/States.csproj b/Examples/States/States.csproj
index 8c69197..8e2b220 100644
--- a/Examples/States/States.csproj
+++ b/Examples/States/States.csproj
@@ -2,7 +2,7 @@
Exe
- net6.0
+ net8.0
diff --git a/Examples/Tokens/Client.cs b/Examples/Tokens/Client.cs
index 8168a22..e517f4c 100644
--- a/Examples/Tokens/Client.cs
+++ b/Examples/Tokens/Client.cs
@@ -3,71 +3,62 @@ using System.Net.Sockets;
using System.Threading;
using IRCTokens;
-namespace Tokens
+namespace Tokens;
+
+public class Client
{
- public class Client
+ private readonly byte[] _bytes = new byte[1024];
+ private readonly StatefulDecoder _decoder = new();
+ private readonly StatefulEncoder _encoder = new();
+ private readonly Socket _socket = new(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
+
+ public void Start()
{
- private readonly byte[] _bytes;
- private readonly StatefulDecoder _decoder;
- private readonly StatefulEncoder _encoder;
- private readonly Socket _socket;
+ _socket.Connect("127.0.0.1", 6667);
+ while (!_socket.Connected) Thread.Sleep(1000);
- public Client()
+ Send(new("NICK", "tokensbot"));
+ Send(new("USER", "tokensbot", "0", "*", "real name"));
+
+ while (true)
{
- _decoder = new StatefulDecoder();
- _encoder = new StatefulEncoder();
- _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
- _bytes = new byte[1024];
- }
+ var bytesReceived = _socket.Receive(_bytes);
- public void Start()
- {
- _socket.Connect("127.0.0.1", 6667);
- while (!_socket.Connected) Thread.Sleep(1000);
-
- Send(new Line("NICK", "tokensbot"));
- Send(new Line("USER", "tokensbot", "0", "*", "real name"));
-
- while (true)
+ if (bytesReceived == 0)
{
- var bytesReceived = _socket.Receive(_bytes);
+ Console.WriteLine("! disconnected");
+ _socket.Shutdown(SocketShutdown.Both);
+ _socket.Close();
+ break;
+ }
- if (bytesReceived == 0)
+ var lines = _decoder.Push(_bytes, bytesReceived);
+
+ foreach (var line in lines)
+ {
+ Console.WriteLine($"< {line.Format()}");
+
+ switch (line.Command)
{
- Console.WriteLine("! disconnected");
- _socket.Shutdown(SocketShutdown.Both);
- _socket.Close();
- break;
- }
-
- var lines = _decoder.Push(_bytes, bytesReceived);
-
- foreach (var line in lines)
- {
- Console.WriteLine($"< {line.Format()}");
-
- switch (line.Command)
- {
- case "PING":
- Send(new Line("PONG", line.Params[0]));
- break;
- case "001":
- Send(new Line("JOIN", "#irctokens"));
- break;
- case "PRIVMSG":
- Send(new Line("PRIVMSG", line.Params[0], "hello there"));
- break;
- }
+ case "PING":
+ Send(new("PONG", line.Params[0]));
+ break;
+ case "001":
+ Send(new("JOIN", "#irctokens"));
+ break;
+ case "PRIVMSG":
+ Send(new("PRIVMSG", line.Params[0], "hello there"));
+ break;
}
}
}
-
- private void Send(Line line)
- {
- Console.WriteLine($"> {line.Format()}");
- _encoder.Push(line);
- while (_encoder.PendingBytes.Length > 0)
- _encoder.Pop(_socket.Send(_encoder.PendingBytes, SocketFlags.None));
- }
}
-}
+
+ private void Send(Line line)
+ {
+ Console.WriteLine($"> {line.Format()}");
+ _encoder.Push(line);
+ while (_encoder.PendingBytes.Length > 0)
+ _encoder.Pop(_socket.Send(_encoder.PendingBytes, SocketFlags.None));
+ }
+}
\ No newline at end of file
diff --git a/Examples/Tokens/Program.cs b/Examples/Tokens/Program.cs
index 9f31dbd..9c28646 100644
--- a/Examples/Tokens/Program.cs
+++ b/Examples/Tokens/Program.cs
@@ -1,25 +1,18 @@
-using System;
+// tokenization
+
+using System;
using IRCTokens;
+using Tokens;
-namespace Tokens
-{
- public class Program
- {
- public static void Main(string[] args)
- {
- // tokenization
- var line = new Line("@id=123 :ben!~ben@hostname PRIVMSG #channel :hello there!");
- Console.WriteLine(line);
- Console.WriteLine(line.Format());
+var line = new Line("@id=123 :ben!~ben@hostname PRIVMSG #channel :hello there!");
+Console.WriteLine(line);
+Console.WriteLine(line.Format());
- // formatting
- var line2 = new Line("USER", "user", "0", "*", "real name");
- Console.WriteLine(line2);
- Console.WriteLine(line2.Format());
+// formatting
+var line2 = new Line("USER", "user", "0", "*", "real name");
+Console.WriteLine(line2);
+Console.WriteLine(line2.Format());
- // stateful example
- var client = new Client();
- client.Start();
- }
- }
-}
+// stateful example
+var client = new Client();
+client.Start();
diff --git a/Examples/Tokens/Tokens.csproj b/Examples/Tokens/Tokens.csproj
index f852d06..31383ae 100644
--- a/Examples/Tokens/Tokens.csproj
+++ b/Examples/Tokens/Tokens.csproj
@@ -2,7 +2,7 @@
Exe
- net6.0
+ net8.0
diff --git a/IRCSharp.Tests/IRCSharp.Tests.csproj b/IRCSharp.Tests/IRCSharp.Tests.csproj
index 9227e87..160d899 100644
--- a/IRCSharp.Tests/IRCSharp.Tests.csproj
+++ b/IRCSharp.Tests/IRCSharp.Tests.csproj
@@ -1,15 +1,15 @@
- netstandard2.1;net6.0
+ net8.0
false
-
-
-
-
+
+
+
+
diff --git a/IRCSharp.Tests/State/Cap.cs b/IRCSharp.Tests/State/Cap.cs
index ea2c718..c60e8ff 100644
--- a/IRCSharp.Tests/State/Cap.cs
+++ b/IRCSharp.Tests/State/Cap.cs
@@ -1,6 +1,5 @@
using System.Collections.Generic;
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IRCSharp.Tests.State
@@ -13,7 +12,7 @@ namespace IRCSharp.Tests.State
[TestInitialize]
public void TestInitialize()
{
- _server = new Server("test");
+ _server = new("test");
}
[TestMethod]
@@ -21,16 +20,16 @@ namespace IRCSharp.Tests.State
{
Assert.IsFalse(_server.HasCap);
CollectionAssert.AreEqual(new Dictionary(), _server.AvailableCaps);
- _server.Parse(new Line("CAP * LS :a b"));
+ _server.Parse(new("CAP * LS :a b"));
CollectionAssert.AreEqual(new Dictionary {{"a", ""}, {"b", ""}}, _server.AvailableCaps);
}
[TestMethod]
public void LsTwoLines()
{
- _server.Parse(new Line("CAP * LS * :a b"));
+ _server.Parse(new("CAP * LS * :a b"));
CollectionAssert.AreEqual(new Dictionary(), _server.AvailableCaps);
- _server.Parse(new Line("CAP * LS :c"));
+ _server.Parse(new("CAP * LS :c"));
Assert.IsTrue(_server.AvailableCaps.ContainsKey("a"));
Assert.IsTrue(_server.AvailableCaps.ContainsKey("b"));
Assert.IsTrue(_server.AvailableCaps.ContainsKey("c"));
@@ -39,7 +38,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void LsValues()
{
- _server.Parse(new Line("CAP * LS :a b= c=1"));
+ _server.Parse(new("CAP * LS :a b= c=1"));
CollectionAssert.AreEqual(new Dictionary {{"a", ""}, {"b", ""}, {"c", "1"}},
_server.AvailableCaps);
}
@@ -47,48 +46,48 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ACKOneLine()
{
- _server.Parse(new Line("CAP * LS :a b"));
- _server.Parse(new Line("CAP * ACK :a b"));
+ _server.Parse(new("CAP * LS :a b"));
+ _server.Parse(new("CAP * ACK :a b"));
CollectionAssert.AreEqual(new List {"a", "b"}, _server.AgreedCaps);
}
[TestMethod]
public void ACKTwoLines()
{
- _server.Parse(new Line("CAP * LS :a b c"));
- _server.Parse(new Line("CAP * ACK * :a b"));
- _server.Parse(new Line("CAP * ACK :c"));
+ _server.Parse(new("CAP * LS :a b c"));
+ _server.Parse(new("CAP * ACK * :a b"));
+ _server.Parse(new("CAP * ACK :c"));
CollectionAssert.AreEqual(new List {"a", "b", "c"}, _server.AgreedCaps);
}
[TestMethod]
public void ACKNotLs()
{
- _server.Parse(new Line("CAP * LS a"));
- _server.Parse(new Line("CAP * ACK b"));
+ _server.Parse(new("CAP * LS a"));
+ _server.Parse(new("CAP * ACK b"));
CollectionAssert.AreEqual(new List(), _server.AgreedCaps);
}
[TestMethod]
public void NewNoLs()
{
- _server.Parse(new Line("CAP * NEW :a"));
+ _server.Parse(new("CAP * NEW :a"));
CollectionAssert.AreEqual(new Dictionary {{"a", ""}}, _server.AvailableCaps);
}
[TestMethod]
public void NewOneLine()
{
- _server.Parse(new Line("CAP * LS :a"));
- _server.Parse(new Line("CAP * NEW :b"));
+ _server.Parse(new("CAP * LS :a"));
+ _server.Parse(new("CAP * NEW :b"));
CollectionAssert.AreEqual(new Dictionary {{"a", ""}, {"b", ""}}, _server.AvailableCaps);
}
[TestMethod]
public void NewTwoLines()
{
- _server.Parse(new Line("CAP * LS :a"));
- _server.Parse(new Line("CAP * NEW :b c"));
+ _server.Parse(new("CAP * LS :a"));
+ _server.Parse(new("CAP * NEW :b c"));
CollectionAssert.AreEqual(new Dictionary {{"a", ""}, {"b", ""}, {"c", ""}},
_server.AvailableCaps);
}
@@ -96,15 +95,15 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void DelNotAcked()
{
- _server.Parse(new Line("CAP * DEL a"));
+ _server.Parse(new("CAP * DEL a"));
}
[TestMethod]
public void DELOneLS()
{
- _server.Parse(new Line("CAP * LS :a"));
- _server.Parse(new Line("CAP * ACK :a"));
- _server.Parse(new Line("CAP * DEL :a"));
+ _server.Parse(new("CAP * LS :a"));
+ _server.Parse(new("CAP * ACK :a"));
+ _server.Parse(new("CAP * DEL :a"));
CollectionAssert.AreEqual(new Dictionary(), _server.AvailableCaps);
CollectionAssert.AreEqual(new List(), _server.AgreedCaps);
}
@@ -112,9 +111,9 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void DelTwoLs()
{
- _server.Parse(new Line("CAP * LS :a b"));
- _server.Parse(new Line("CAP * ACK :a b"));
- _server.Parse(new Line("CAP * DEL :a"));
+ _server.Parse(new("CAP * LS :a b"));
+ _server.Parse(new("CAP * ACK :a b"));
+ _server.Parse(new("CAP * DEL :a"));
CollectionAssert.AreEqual(new Dictionary {{"b", ""}}, _server.AvailableCaps);
CollectionAssert.AreEqual(new List {"b"}, _server.AgreedCaps);
}
@@ -122,9 +121,9 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void DelTwoDel()
{
- _server.Parse(new Line("CAP * LS :a b"));
- _server.Parse(new Line("CAP * ACK :a b"));
- _server.Parse(new Line("CAP * DEL :a b"));
+ _server.Parse(new("CAP * LS :a b"));
+ _server.Parse(new("CAP * ACK :a b"));
+ _server.Parse(new("CAP * DEL :a b"));
CollectionAssert.AreEqual(new Dictionary(), _server.AvailableCaps);
CollectionAssert.AreEqual(new List(), _server.AgreedCaps);
}
diff --git a/IRCSharp.Tests/State/Casemap.cs b/IRCSharp.Tests/State/Casemap.cs
index 29b84d6..c385f75 100644
--- a/IRCSharp.Tests/State/Casemap.cs
+++ b/IRCSharp.Tests/State/Casemap.cs
@@ -1,5 +1,4 @@
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IRCSharp.Tests.State
@@ -25,9 +24,9 @@ namespace IRCSharp.Tests.State
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"));
+ server.Parse(new("001 nickname"));
+ server.Parse(new(":Nickname JOIN #Chan"));
+ server.Parse(new(":Other JOIN #Chan"));
Assert.IsTrue(server.Users.ContainsKey("nickname"));
Assert.IsFalse(server.Users.ContainsKey("Nickname"));
@@ -44,10 +43,10 @@ namespace IRCSharp.Tests.State
public void CommandNick()
{
var server = new Server("test");
- server.Parse(new Line("001 nickname"));
- server.Parse(new Line(":nickname JOIN #chan"));
+ server.Parse(new("001 nickname"));
+ server.Parse(new(":nickname JOIN #chan"));
var user = server.Users["nickname"];
- server.Parse(new Line(":nickname NICK NewNickname"));
+ server.Parse(new(":nickname NICK NewNickname"));
Assert.AreEqual(1, server.Users.Count);
Assert.IsTrue(server.Users.ContainsKey("newnickname"));
Assert.AreEqual("NewNickname", user.NickName);
diff --git a/IRCSharp.Tests/State/Channel.cs b/IRCSharp.Tests/State/Channel.cs
index 10d8a57..aa506bc 100644
--- a/IRCSharp.Tests/State/Channel.cs
+++ b/IRCSharp.Tests/State/Channel.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IRCSharp.Tests.State
@@ -15,9 +14,9 @@ namespace IRCSharp.Tests.State
[TestInitialize]
public void TestInitialize()
{
- _server = new Server("test");
- _server.Parse(new Line("001 nickname"));
- _server.Parse(new Line(":nickname JOIN #chan"));
+ _server = new("test");
+ _server.Parse(new("001 nickname"));
+ _server.Parse(new(":nickname JOIN #chan"));
}
[TestMethod]
@@ -37,7 +36,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void JoinOther()
{
- _server.Parse(new Line(":other JOIN #chan"));
+ _server.Parse(new(":other JOIN #chan"));
Assert.AreEqual(2, _server.Users.Count);
Assert.IsTrue(_server.Users.ContainsKey("other"));
@@ -52,7 +51,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void PartSelf()
{
- _server.Parse(new Line(":nickname PART #chan"));
+ _server.Parse(new(":nickname PART #chan"));
Assert.AreEqual(0, _server.Users.Count);
Assert.AreEqual(0, _server.Channels.Count);
@@ -61,8 +60,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void PartOther()
{
- _server.Parse(new Line(":other JOIN #chan"));
- _server.Parse(new Line(":other PART #chan"));
+ _server.Parse(new(":other JOIN #chan"));
+ _server.Parse(new(":other PART #chan"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
@@ -77,7 +76,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void KickSelf()
{
- _server.Parse(new Line(":nickname KICK #chan nickname"));
+ _server.Parse(new(":nickname KICK #chan nickname"));
Assert.AreEqual(0, _server.Users.Count);
Assert.AreEqual(0, _server.Channels.Count);
@@ -86,8 +85,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void KickOther()
{
- _server.Parse(new Line(":other JOIN #chan"));
- _server.Parse(new Line(":nickname KICK #chan other"));
+ _server.Parse(new(":other JOIN #chan"));
+ _server.Parse(new(":nickname KICK #chan other"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
@@ -103,7 +102,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void QuitSelf()
{
- _server.Parse(new Line("QUIT :i'm outta here"));
+ _server.Parse(new("QUIT :i'm outta here"));
Assert.IsFalse(_server.Users.Any());
Assert.IsFalse(_server.Channels.Any());
}
@@ -111,7 +110,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void QuitSelfWithSource()
{
- _server.Parse(new Line(":nickname QUIT :i'm outta here"));
+ _server.Parse(new(":nickname QUIT :i'm outta here"));
Assert.IsFalse(_server.Users.Any());
Assert.IsFalse(_server.Channels.Any());
}
@@ -119,15 +118,15 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void QuitOther()
{
- _server.Parse(new Line(":other JOIN #chan"));
- _server.Parse(new Line(":other QUIT :see ya"));
+ _server.Parse(new(":other JOIN #chan"));
+ _server.Parse(new(":other QUIT :see ya"));
Assert.IsFalse(_server.Users.ContainsKey("other"));
}
[TestMethod]
public void TopicText()
{
- _server.Parse(new Line("332 * #chan :test"));
+ _server.Parse(new("332 * #chan :test"));
Assert.AreEqual("test", _server.Channels["#chan"].Topic);
}
@@ -135,7 +134,7 @@ namespace IRCSharp.Tests.State
public void TopicSetByAt()
{
var dt = DateTimeOffset.FromUnixTimeSeconds(1584023277).DateTime;
- _server.Parse(new Line("333 * #chan other 1584023277"));
+ _server.Parse(new("333 * #chan other 1584023277"));
var channel = _server.Channels["#chan"];
@@ -146,21 +145,21 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void TopicCommand()
{
- _server.Parse(new Line("TOPIC #chan :hello there"));
+ _server.Parse(new("TOPIC #chan :hello there"));
Assert.AreEqual("hello there", _server.Channels["#chan"].Topic);
}
[TestMethod]
public void CreationDate()
{
- _server.Parse(new Line("329 * #chan 1584041889"));
+ _server.Parse(new("329 * #chan 1584041889"));
Assert.AreEqual(DateTimeOffset.FromUnixTimeSeconds(1584041889).DateTime, _server.Channels["#chan"].Created);
}
[TestMethod]
public void NamesCommand()
{
- _server.Parse(new Line("353 * * #chan :nickname @+other"));
+ _server.Parse(new("353 * * #chan :nickname @+other"));
Assert.IsTrue(_server.Users.ContainsKey("nickname"));
Assert.IsTrue(_server.Users.ContainsKey("other"));
@@ -179,7 +178,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void UserhostInNames()
{
- _server.Parse(new Line("353 * * #chan :nickname!user@host other!user2@host2"));
+ _server.Parse(new("353 * * #chan :nickname!user@host other!user2@host2"));
Assert.AreEqual("user", _server.UserName);
Assert.AreEqual("host", _server.HostName);
@@ -194,7 +193,7 @@ namespace IRCSharp.Tests.State
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
var chanUser = channel.Users[user.NickNameLower];
- _server.Parse(new Line(":nickname NICK nickname2"));
+ _server.Parse(new(":nickname NICK nickname2"));
CollectionAssert.AreEqual(new Dictionary {{user.NickNameLower, chanUser}},
channel.Users);
}
diff --git a/IRCSharp.Tests/State/Emit.cs b/IRCSharp.Tests/State/Emit.cs
index 2b4d559..973104b 100644
--- a/IRCSharp.Tests/State/Emit.cs
+++ b/IRCSharp.Tests/State/Emit.cs
@@ -1,6 +1,5 @@
using System.Collections.Generic;
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IRCSharp.Tests.State
@@ -13,21 +12,21 @@ namespace IRCSharp.Tests.State
[TestInitialize]
public void TestInitialize()
{
- _server = new Server("test");
- _server.Parse(new Line("001 nickname"));
+ _server = new("test");
+ _server.Parse(new("001 nickname"));
}
[TestMethod]
public void EmitJoin()
{
- var emit = _server.Parse(new Line(":nickname JOIN #chan"));
+ var emit = _server.Parse(new(":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.Parse(new Line(":other JOIN #chan"));
+ emit = _server.Parse(new(":other JOIN #chan"));
Assert.IsNotNull(emit);
Assert.AreEqual("JOIN", emit.Command);
Assert.IsFalse(emit.Self);
@@ -38,8 +37,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void EmitPrivmsg()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- var emit = _server.Parse(new Line(":nickname PRIVMSG #chan :hello"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ var emit = _server.Parse(new(":nickname PRIVMSG #chan :hello"));
Assert.IsNotNull(emit);
Assert.AreEqual("PRIVMSG", emit.Command);
@@ -48,8 +47,8 @@ namespace IRCSharp.Tests.State
Assert.AreEqual(_server.Users["nickname"], emit.User);
Assert.AreEqual(_server.Channels["#chan"], emit.Channel);
- _server.Parse(new Line(":other JOIN #chan"));
- emit = _server.Parse(new Line(":other PRIVMSG #chan :hello2"));
+ _server.Parse(new(":other JOIN #chan"));
+ emit = _server.Parse(new(":other PRIVMSG #chan :hello2"));
Assert.IsNotNull(emit);
Assert.AreEqual("PRIVMSG", emit.Command);
@@ -62,8 +61,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void EmitPrivmsgNoJoin()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- var emit = _server.Parse(new Line(":other PRIVMSG #chan :hello"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ var emit = _server.Parse(new(":other PRIVMSG #chan :hello"));
Assert.IsNotNull(emit);
Assert.AreEqual("PRIVMSG", emit.Command);
@@ -78,13 +77,13 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void EmitKick()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
+ _server.Parse(new(":nickname JOIN #chan"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
- _server.Parse(new Line(":other JOIN #chan"));
+ _server.Parse(new(":other JOIN #chan"));
var userOther = _server.Users["other"];
- var emit = _server.Parse(new Line(":nickname KICK #chan other :reason"));
+ var emit = _server.Parse(new(":nickname KICK #chan other :reason"));
Assert.IsNotNull(emit);
Assert.AreEqual("KICK", emit.Command);
@@ -98,7 +97,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void EmitMode()
{
- var emit = _server.Parse(new Line("MODE nickname x+i-i+wi-wi"));
+ var emit = _server.Parse(new("MODE nickname x+i-i+wi-wi"));
Assert.IsNotNull(emit);
Assert.AreEqual("MODE", emit.Command);
diff --git a/IRCSharp.Tests/State/ISupport.cs b/IRCSharp.Tests/State/ISupport.cs
index a25cba8..476999a 100644
--- a/IRCSharp.Tests/State/ISupport.cs
+++ b/IRCSharp.Tests/State/ISupport.cs
@@ -1,6 +1,5 @@
using System.Collections.Generic;
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
// ReSharper disable InconsistentNaming
@@ -15,8 +14,8 @@ namespace IRCSharp.Tests.State
[TestInitialize]
public void TestInitialize()
{
- _server = new Server("test");
- _server.Parse(new Line("001 nickname"));
+ _server = new("test");
+ _server.Parse(new("001 nickname"));
}
[TestMethod]
@@ -35,7 +34,7 @@ namespace IRCSharp.Tests.State
"t"
}, _server.ISupport.ChanModes.SettingDModes);
- _server.Parse(new Line("005 * CHANMODES=a,b,c,d *"));
+ _server.Parse(new("005 * CHANMODES=a,b,c,d *"));
CollectionAssert.AreEqual(new List {"a"}, _server.ISupport.ChanModes.ListModes);
CollectionAssert.AreEqual(new List {"b"}, _server.ISupport.ChanModes.SettingBModes);
@@ -54,7 +53,7 @@ namespace IRCSharp.Tests.State
Assert.AreEqual("o", _server.ISupport.Prefix.FromPrefix("@"));
Assert.IsNull(_server.ISupport.Prefix.FromPrefix("&"));
- _server.Parse(new Line("005 * PREFIX=(qaohv)~&@%+ *"));
+ _server.Parse(new("005 * PREFIX=(qaohv)~&@%+ *"));
CollectionAssert.AreEqual(new List
{
"q",
@@ -79,7 +78,7 @@ namespace IRCSharp.Tests.State
public void ChanTypes()
{
CollectionAssert.AreEqual(new List {"#"}, _server.ISupport.ChanTypes);
- _server.Parse(new Line("005 * CHANTYPES=#& *"));
+ _server.Parse(new("005 * CHANTYPES=#& *"));
CollectionAssert.AreEqual(new List {"#", "&"}, _server.ISupport.ChanTypes);
}
@@ -88,10 +87,10 @@ namespace IRCSharp.Tests.State
{
Assert.AreEqual(3, _server.ISupport.Modes);
- _server.Parse(new Line("005 * MODES *"));
+ _server.Parse(new("005 * MODES *"));
Assert.AreEqual(-1, _server.ISupport.Modes);
- _server.Parse(new Line("005 * MODES=5 *"));
+ _server.Parse(new("005 * MODES=5 *"));
Assert.AreEqual(5, _server.ISupport.Modes);
}
@@ -99,7 +98,7 @@ namespace IRCSharp.Tests.State
public void Rfc1459()
{
Assert.AreEqual(IRCStates.Casemap.CaseMapping.Rfc1459, _server.ISupport.CaseMapping);
- _server.Parse(new Line("005 * CASEMAPPING=rfc1459 *"));
+ _server.Parse(new("005 * CASEMAPPING=rfc1459 *"));
Assert.AreEqual(IRCStates.Casemap.CaseMapping.Rfc1459, _server.ISupport.CaseMapping);
var lower = _server.CaseFold(@"ÀTEST[]~\");
Assert.AreEqual("Àtest{}^|", lower);
@@ -108,7 +107,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void Ascii()
{
- _server.Parse(new Line("005 * CASEMAPPING=ascii *"));
+ _server.Parse(new("005 * CASEMAPPING=ascii *"));
Assert.AreEqual(IRCStates.Casemap.CaseMapping.Ascii, _server.ISupport.CaseMapping);
var lower = _server.CaseFold(@"ÀTEST[]~\");
Assert.AreEqual(@"Àtest[]~\", lower);
@@ -117,7 +116,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void FallbackToRfc1459()
{
- _server.Parse(new Line("005 * CASEMAPPING=nonexistent *"));
+ _server.Parse(new("005 * CASEMAPPING=nonexistent *"));
Assert.AreEqual(IRCStates.Casemap.CaseMapping.Rfc1459, _server.ISupport.CaseMapping);
var lower = _server.CaseFold(@"ÀTEST[]~\");
Assert.AreEqual("Àtest{}^|", lower);
@@ -127,7 +126,7 @@ namespace IRCSharp.Tests.State
public void Network()
{
Assert.IsNull(_server.ISupport.Network);
- _server.Parse(new Line("005 * NETWORK=testnet *"));
+ _server.Parse(new("005 * NETWORK=testnet *"));
Assert.AreEqual("testnet", _server.ISupport.Network);
}
@@ -135,7 +134,7 @@ namespace IRCSharp.Tests.State
public void StatusMsg()
{
CollectionAssert.AreEqual(new List(), _server.ISupport.StatusMsg);
- _server.Parse(new Line("005 * STATUSMSG=&@ *"));
+ _server.Parse(new("005 * STATUSMSG=&@ *"));
CollectionAssert.AreEqual(new List {"&", "@"}, _server.ISupport.StatusMsg);
}
@@ -144,10 +143,10 @@ namespace IRCSharp.Tests.State
{
Assert.IsNull(_server.ISupport.CallerId);
- _server.Parse(new Line("005 * CALLERID=U *"));
+ _server.Parse(new("005 * CALLERID=U *"));
Assert.AreEqual("U", _server.ISupport.CallerId);
- _server.Parse(new Line("005 * CALLERID *"));
+ _server.Parse(new("005 * CALLERID *"));
Assert.AreEqual("g", _server.ISupport.CallerId);
}
@@ -156,10 +155,10 @@ namespace IRCSharp.Tests.State
{
Assert.IsNull(_server.ISupport.Excepts);
- _server.Parse(new Line("005 * EXCEPTS=U *"));
+ _server.Parse(new("005 * EXCEPTS=U *"));
Assert.AreEqual("U", _server.ISupport.Excepts);
- _server.Parse(new Line("005 * EXCEPTS *"));
+ _server.Parse(new("005 * EXCEPTS *"));
Assert.AreEqual("e", _server.ISupport.Excepts);
}
@@ -168,10 +167,10 @@ namespace IRCSharp.Tests.State
{
Assert.IsNull(_server.ISupport.Invex);
- _server.Parse(new Line("005 * INVEX=U *"));
+ _server.Parse(new("005 * INVEX=U *"));
Assert.AreEqual("U", _server.ISupport.Invex);
- _server.Parse(new Line("005 * INVEX *"));
+ _server.Parse(new("005 * INVEX *"));
Assert.AreEqual("I", _server.ISupport.Invex);
}
@@ -180,7 +179,7 @@ namespace IRCSharp.Tests.State
{
Assert.IsFalse(_server.ISupport.Whox);
- _server.Parse(new Line("005 * WHOX *"));
+ _server.Parse(new("005 * WHOX *"));
Assert.IsTrue(_server.ISupport.Whox);
}
@@ -189,10 +188,10 @@ namespace IRCSharp.Tests.State
{
Assert.IsNull(_server.ISupport.Monitor);
- _server.Parse(new Line("005 * MONITOR=123 *"));
+ _server.Parse(new("005 * MONITOR=123 *"));
Assert.AreEqual(123, _server.ISupport.Monitor);
- _server.Parse(new Line("005 * MONITOR *"));
+ _server.Parse(new("005 * MONITOR *"));
Assert.AreEqual(-1, _server.ISupport.Monitor);
}
@@ -201,10 +200,10 @@ namespace IRCSharp.Tests.State
{
Assert.IsNull(_server.ISupport.Watch);
- _server.Parse(new Line("005 * WATCH=123 *"));
+ _server.Parse(new("005 * WATCH=123 *"));
Assert.AreEqual(123, _server.ISupport.Watch);
- _server.Parse(new Line("005 * WATCH *"));
+ _server.Parse(new("005 * WATCH *"));
Assert.AreEqual(-1, _server.ISupport.Watch);
}
}
diff --git a/IRCSharp.Tests/State/Mode.cs b/IRCSharp.Tests/State/Mode.cs
index 79b8dba..8731500 100644
--- a/IRCSharp.Tests/State/Mode.cs
+++ b/IRCSharp.Tests/State/Mode.cs
@@ -1,6 +1,5 @@
using System.Collections.Generic;
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IRCSharp.Tests.State
@@ -13,30 +12,30 @@ namespace IRCSharp.Tests.State
[TestInitialize]
public void TestInitialize()
{
- _server = new Server("test");
- _server.Parse(new Line("001 nickname"));
+ _server = new("test");
+ _server.Parse(new("001 nickname"));
}
[TestMethod]
public void UModeAdd()
{
- _server.Parse(new Line("MODE nickname +i"));
+ _server.Parse(new("MODE nickname +i"));
CollectionAssert.AreEqual(new List {"i"}, _server.Modes);
}
[TestMethod]
public void UModeRemove()
{
- _server.Parse(new Line("MODE nickname +i"));
- _server.Parse(new Line("MODE nickname -i"));
+ _server.Parse(new("MODE nickname +i"));
+ _server.Parse(new("MODE nickname -i"));
CollectionAssert.AreEqual(new List(), _server.Modes);
}
[TestMethod]
public void PrefixAdd()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("MODE #chan +ov nickname nickname"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +ov nickname nickname"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
@@ -47,9 +46,9 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void PrefixRemove()
{
- _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"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +ov nickname nickname"));
+ _server.Parse(new("MODE #chan -ov nickname nickname"));
var user = _server.Users["nickname"];
var channel = _server.Channels["#chan"];
@@ -60,8 +59,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelListAdd()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("MODE #chan +b asd!*@*"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +b asd!*@*"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new List {"asd!*@*"}, channel.ListModes["b"]);
@@ -70,9 +69,9 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelListRemove()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("MODE #chan +b asd!*@*"));
- _server.Parse(new Line("MODE #chan -b asd!*@*"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +b asd!*@*"));
+ _server.Parse(new("MODE #chan -b asd!*@*"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary>(), channel.ListModes);
@@ -81,8 +80,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelTypeBAdd()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("MODE #chan +k password"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +k password"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary {{"k", "password"}}, channel.Modes);
@@ -91,9 +90,9 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelTypeBRemove()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("MODE #chan +k password"));
- _server.Parse(new Line("MODE #chan -k *"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +k password"));
+ _server.Parse(new("MODE #chan -k *"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary(), channel.Modes);
@@ -102,8 +101,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelTypeCAdd()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("MODE #chan +l 100"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +l 100"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary {{"l", "100"}}, channel.Modes);
@@ -112,9 +111,9 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelTypeCRemove()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("MODE #chan +l 100"));
- _server.Parse(new Line("MODE #chan -l"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +l 100"));
+ _server.Parse(new("MODE #chan -l"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary(), channel.Modes);
@@ -123,8 +122,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelTypeDAdd()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("MODE #chan +i"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +i"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary {{"i", null}}, channel.Modes);
@@ -133,9 +132,9 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelTypeDRemove()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("MODE #chan +i"));
- _server.Parse(new Line("MODE #chan -i"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("MODE #chan +i"));
+ _server.Parse(new("MODE #chan -i"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary(), channel.Modes);
@@ -144,8 +143,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelNumeric()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("324 * #chan +bkli *!*@* pass 10"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("324 * #chan +bkli *!*@* pass 10"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary {{"k", "pass"}, {"l", "10"}, {"i", null}},
@@ -156,8 +155,8 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ChannelNumericWithoutPlus()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("324 * #chan il 10"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("324 * #chan il 10"));
var channel = _server.Channels["#chan"];
CollectionAssert.AreEqual(new Dictionary {{"i", null}, {"l", "10"}}, channel.Modes);
@@ -166,14 +165,14 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void UserNumeric()
{
- _server.Parse(new Line("221 * +iw"));
+ _server.Parse(new("221 * +iw"));
CollectionAssert.AreEqual(new List {"i", "w"}, _server.Modes);
}
[TestMethod]
public void UserNumericWithoutPlus()
{
- _server.Parse(new Line("221 * iw"));
+ _server.Parse(new("221 * iw"));
CollectionAssert.AreEqual(new List {"i", "w"}, _server.Modes);
}
}
diff --git a/IRCSharp.Tests/State/Motd.cs b/IRCSharp.Tests/State/Motd.cs
index 3efbce7..fefd8ed 100644
--- a/IRCSharp.Tests/State/Motd.cs
+++ b/IRCSharp.Tests/State/Motd.cs
@@ -1,6 +1,5 @@
using System.Collections.Generic;
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IRCSharp.Tests.State
@@ -12,10 +11,10 @@ namespace IRCSharp.Tests.State
public void MessageOfTheDay()
{
var server = new Server("test");
- 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"));
+ server.Parse(new("001 nickname"));
+ server.Parse(new("375 * :start of motd"));
+ server.Parse(new("372 * :first line of motd"));
+ server.Parse(new("372 * :second line of motd"));
CollectionAssert.AreEqual(new List {"start of motd", "first line of motd", "second line of motd"},
server.Motd);
diff --git a/IRCSharp.Tests/State/Sasl.cs b/IRCSharp.Tests/State/Sasl.cs
index 3056a58..e3ce67d 100644
--- a/IRCSharp.Tests/State/Sasl.cs
+++ b/IRCSharp.Tests/State/Sasl.cs
@@ -1,5 +1,4 @@
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IRCSharp.Tests.State
@@ -12,8 +11,8 @@ namespace IRCSharp.Tests.State
[TestInitialize]
public void TestInitialize()
{
- _server = new Server("test");
- _server.Parse(new Line("900 * nick!user@host account"));
+ _server = new("test");
+ _server.Parse(new("900 * nick!user@host account"));
}
[TestMethod]
@@ -28,7 +27,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void LoggedOut()
{
- _server.Parse(new Line("901 * nick1!user1@host1"));
+ _server.Parse(new("901 * nick1!user1@host1"));
Assert.AreEqual("nick1", _server.NickName);
Assert.AreEqual("user1", _server.UserName);
diff --git a/IRCSharp.Tests/State/User.cs b/IRCSharp.Tests/State/User.cs
index b1c1caf..7e43cfb 100644
--- a/IRCSharp.Tests/State/User.cs
+++ b/IRCSharp.Tests/State/User.cs
@@ -1,5 +1,4 @@
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IRCSharp.Tests.State
@@ -12,8 +11,8 @@ namespace IRCSharp.Tests.State
[TestInitialize]
public void TestInitialize()
{
- _server = new Server("test");
- _server.Parse(new Line("001 nickname"));
+ _server = new("test");
+ _server.Parse(new("001 nickname"));
}
[TestMethod]
@@ -26,14 +25,14 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void NicknameChange()
{
- _server.Parse(new Line(":nickname NICK nickname2"));
+ _server.Parse(new(":nickname NICK nickname2"));
Assert.AreEqual("nickname2", _server.NickName);
- _server.Parse(new Line(":nickname2 JOIN #chan"));
- _server.Parse(new Line(":other JOIN #chan"));
+ _server.Parse(new(":nickname2 JOIN #chan"));
+ _server.Parse(new(":other JOIN #chan"));
Assert.IsTrue(_server.Users.ContainsKey("other"));
- _server.Parse(new Line(":other NICK other2"));
+ _server.Parse(new(":other NICK other2"));
Assert.IsFalse(_server.Users.ContainsKey("other"));
Assert.IsTrue(_server.Users.ContainsKey("other2"));
}
@@ -41,11 +40,11 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void HostmaskJoinBoth()
{
- _server.Parse(new Line(":nickname!user@host JOIN #chan"));
+ _server.Parse(new(":nickname!user@host JOIN #chan"));
Assert.AreEqual("user", _server.UserName);
Assert.AreEqual("host", _server.HostName);
- _server.Parse(new Line(":other!user@host JOIN #chan"));
+ _server.Parse(new(":other!user@host JOIN #chan"));
var user = _server.Users["other"];
Assert.AreEqual("user", user.UserName);
Assert.AreEqual("host", user.HostName);
@@ -54,11 +53,11 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void HostmaskJoinUser()
{
- _server.Parse(new Line(":nickname!user JOIN #chan"));
+ _server.Parse(new(":nickname!user JOIN #chan"));
Assert.AreEqual("user", _server.UserName);
Assert.IsNull(_server.HostName);
- _server.Parse(new Line(":other!user JOIN #chan"));
+ _server.Parse(new(":other!user JOIN #chan"));
var user = _server.Users["other"];
Assert.AreEqual("user", user.UserName);
Assert.IsNull(user.HostName);
@@ -67,11 +66,11 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void HostmaskJoinHost()
{
- _server.Parse(new Line(":nickname@host JOIN #chan"));
+ _server.Parse(new(":nickname@host JOIN #chan"));
Assert.IsNull(_server.UserName);
Assert.AreEqual("host", _server.HostName);
- _server.Parse(new Line(":other@host JOIN #chan"));
+ _server.Parse(new(":other@host JOIN #chan"));
var user = _server.Users["other"];
Assert.IsNull(user.UserName);
Assert.AreEqual("host", user.HostName);
@@ -80,11 +79,11 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ExtendedJoinWithoutExtendedJoin()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
+ _server.Parse(new(":nickname JOIN #chan"));
Assert.IsNull(_server.Account);
Assert.IsNull(_server.RealName);
- _server.Parse(new Line(":other JOIN #chan"));
+ _server.Parse(new(":other JOIN #chan"));
var user = _server.Users["other"];
Assert.IsNull(user.Account);
Assert.IsNull(user.RealName);
@@ -93,11 +92,11 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ExtendedJoinWithAccount()
{
- _server.Parse(new Line(":nickname JOIN #chan acc :realname"));
+ _server.Parse(new(":nickname JOIN #chan acc :realname"));
Assert.AreEqual("acc", _server.Account);
Assert.AreEqual("realname", _server.RealName);
- _server.Parse(new Line(":other JOIN #chan acc2 :realname2"));
+ _server.Parse(new(":other JOIN #chan acc2 :realname2"));
var user = _server.Users["other"];
Assert.AreEqual("acc2", user.Account);
Assert.AreEqual("realname2", user.RealName);
@@ -106,11 +105,11 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void ExtendedJoinWithoutAccount()
{
- _server.Parse(new Line(":nickname JOIN #chan * :realname"));
+ _server.Parse(new(":nickname JOIN #chan * :realname"));
Assert.AreEqual("", _server.Account);
Assert.AreEqual("realname", _server.RealName);
- _server.Parse(new Line(":other JOIN #chan * :realname2"));
+ _server.Parse(new(":other JOIN #chan * :realname2"));
var user = _server.Users["other"];
Assert.AreEqual("", user.Account);
Assert.AreEqual("realname2", user.RealName);
@@ -119,12 +118,12 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void AccountNotifyWithAccount()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line(":nickname ACCOUNT acc"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new(":nickname ACCOUNT acc"));
Assert.AreEqual("acc", _server.Account);
- _server.Parse(new Line(":other JOIN #chan"));
- _server.Parse(new Line(":other ACCOUNT acc2"));
+ _server.Parse(new(":other JOIN #chan"));
+ _server.Parse(new(":other ACCOUNT acc2"));
var user = _server.Users["other"];
Assert.AreEqual("acc2", user.Account);
}
@@ -132,12 +131,12 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void AccountNotifyWithoutAccount()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line(":nickname ACCOUNT *"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new(":nickname ACCOUNT *"));
Assert.AreEqual("", _server.Account);
- _server.Parse(new Line(":other JOIN #chan"));
- _server.Parse(new Line(":other ACCOUNT *"));
+ _server.Parse(new(":other JOIN #chan"));
+ _server.Parse(new(":other ACCOUNT *"));
var user = _server.Users["other"];
Assert.AreEqual("", user.Account);
}
@@ -145,12 +144,12 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void HostmaskPrivmsgBoth()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line(":nickname!user@host PRIVMSG #chan :hi"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new(":nickname!user@host PRIVMSG #chan :hi"));
Assert.AreEqual("user", _server.UserName);
Assert.AreEqual("host", _server.HostName);
- _server.Parse(new Line(":other!user@host PRIVMSG #chan :hi"));
+ _server.Parse(new(":other!user@host PRIVMSG #chan :hi"));
var user = _server.Users["other"];
Assert.AreEqual("user", user.UserName);
Assert.AreEqual("host", user.HostName);
@@ -159,12 +158,12 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void HostmaskPrivmsgUser()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line(":nickname!user PRIVMSG #chan :hi"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new(":nickname!user PRIVMSG #chan :hi"));
Assert.AreEqual("user", _server.UserName);
Assert.IsNull(_server.HostName);
- _server.Parse(new Line(":other!user PRIVMSG #chan :hi"));
+ _server.Parse(new(":other!user PRIVMSG #chan :hi"));
var user = _server.Users["other"];
Assert.AreEqual("user", user.UserName);
Assert.IsNull(user.HostName);
@@ -173,12 +172,12 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void HostmaskPrivmsgHost()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line(":nickname@host PRIVMSG #chan :hi"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new(":nickname@host PRIVMSG #chan :hi"));
Assert.IsNull(_server.UserName);
Assert.AreEqual("host", _server.HostName);
- _server.Parse(new Line(":other@host PRIVMSG #chan :hi"));
+ _server.Parse(new(":other@host PRIVMSG #chan :hi"));
var user = _server.Users["other"];
Assert.IsNull(user.UserName);
Assert.AreEqual("host", user.HostName);
@@ -187,7 +186,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void VisibleHostWithoutUsername()
{
- _server.Parse(new Line("396 * hostname"));
+ _server.Parse(new("396 * hostname"));
Assert.IsNull(_server.UserName);
Assert.AreEqual("hostname", _server.HostName);
}
@@ -195,7 +194,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void VisibleHostWithUsername()
{
- _server.Parse(new Line("396 * username@hostname"));
+ _server.Parse(new("396 * username@hostname"));
Assert.AreEqual("username", _server.UserName);
Assert.AreEqual("hostname", _server.HostName);
}
@@ -203,10 +202,10 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void Who()
{
- _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"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new(":other JOIN #chan"));
+ _server.Parse(new("352 * #chan user host * nickname * :0 real"));
+ _server.Parse(new("352 * #chan user2 host2 * other * :0 real2"));
Assert.AreEqual("user", _server.UserName);
Assert.AreEqual("host", _server.HostName);
@@ -221,13 +220,13 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void Chghost()
{
- _server.Parse(new Line(":nickname!user@host JOIN #chan"));
- _server.Parse(new Line(":nickname CHGHOST u h"));
+ _server.Parse(new(":nickname!user@host JOIN #chan"));
+ _server.Parse(new(":nickname CHGHOST u h"));
Assert.AreEqual("u", _server.UserName);
Assert.AreEqual("h", _server.HostName);
- _server.Parse(new Line(":other!user2@host2 JOIN #chan"));
- _server.Parse(new Line(":other CHGHOST u2 h2"));
+ _server.Parse(new(":other!user2@host2 JOIN #chan"));
+ _server.Parse(new(":other CHGHOST u2 h2"));
var user = _server.Users["other"];
Assert.AreEqual("u2", user.UserName);
Assert.AreEqual("h2", user.HostName);
@@ -236,15 +235,15 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void Whois()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line("311 * nickname u h * :r"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new("311 * nickname u h * :r"));
Assert.AreEqual("u", _server.UserName);
Assert.AreEqual("h", _server.HostName);
Assert.AreEqual("r", _server.RealName);
- _server.Parse(new Line(":other JOIN #chan"));
- _server.Parse(new Line(":other CHGHOST u2 h2"));
- _server.Parse(new Line("311 * other u2 h2 * :r2"));
+ _server.Parse(new(":other JOIN #chan"));
+ _server.Parse(new(":other CHGHOST u2 h2"));
+ _server.Parse(new("311 * other u2 h2 * :r2"));
var user = _server.Users["other"];
Assert.AreEqual("u2", user.UserName);
Assert.AreEqual("h2", user.HostName);
@@ -254,14 +253,14 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void AwaySet()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line(":other JOIN #chan"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new(":other JOIN #chan"));
var user = _server.Users["other"];
Assert.IsNull(_server.Away);
Assert.IsNull(user.Away);
- _server.Parse(new Line(":nickname AWAY :bye bye"));
- _server.Parse(new Line(":other AWAY :ich geh weg"));
+ _server.Parse(new(":nickname AWAY :bye bye"));
+ _server.Parse(new(":other AWAY :ich geh weg"));
Assert.AreEqual("bye bye", _server.Away);
Assert.AreEqual("ich geh weg", user.Away);
}
@@ -269,12 +268,12 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void AwayUnset()
{
- _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"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new(":other JOIN #chan"));
+ _server.Parse(new(":nickname AWAY :bye bye"));
+ _server.Parse(new(":nickname AWAY"));
+ _server.Parse(new(":other AWAY :ich geh weg"));
+ _server.Parse(new(":other AWAY"));
var user = _server.Users["other"];
Assert.IsNull(_server.Away);
@@ -284,14 +283,14 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void Setname()
{
- _server.Parse(new Line(":nickname JOIN #chan"));
- _server.Parse(new Line(":other JOIN #chan"));
+ _server.Parse(new(":nickname JOIN #chan"));
+ _server.Parse(new(":other JOIN #chan"));
var user = _server.Users["other"];
Assert.IsNull(user.RealName);
Assert.IsNull(_server.RealName);
- _server.Parse(new Line(":nickname SETNAME :new now know how"));
- _server.Parse(new Line(":other SETNAME :tyrannosaurus hex"));
+ _server.Parse(new(":nickname SETNAME :new now know how"));
+ _server.Parse(new(":other SETNAME :tyrannosaurus hex"));
Assert.AreEqual("new now know how", _server.RealName);
Assert.AreEqual("tyrannosaurus hex", user.RealName);
}
diff --git a/IRCSharp.Tests/State/Who.cs b/IRCSharp.Tests/State/Who.cs
index 2220b12..610d707 100644
--- a/IRCSharp.Tests/State/Who.cs
+++ b/IRCSharp.Tests/State/Who.cs
@@ -1,5 +1,4 @@
using IRCStates;
-using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace IRCSharp.Tests.State
@@ -12,15 +11,15 @@ namespace IRCSharp.Tests.State
[TestInitialize]
public void TestInitialize()
{
- _server = new Server("test");
- _server.Parse(new Line("001 nickname"));
- _server.Parse(new Line(":nickname JOIN #chan"));
+ _server = new("test");
+ _server.Parse(new("001 nickname"));
+ _server.Parse(new(":nickname JOIN #chan"));
}
[TestMethod]
public void WhoResponse()
{
- _server.Parse(new Line("352 * #chan user host server nickname * :0 real"));
+ _server.Parse(new("352 * #chan user host server nickname * :0 real"));
var user = _server.Users["nickname"];
Assert.AreEqual("user", user.UserName);
@@ -35,7 +34,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void Whox()
{
- _server.Parse(new Line($"354 * {Server.WhoType} user realip host nickname account :real"));
+ _server.Parse(new($"354 * {Server.WhoType} user realip host nickname account :real"));
var user = _server.Users["nickname"];
Assert.AreEqual("user", user.UserName);
@@ -52,7 +51,7 @@ namespace IRCSharp.Tests.State
[TestMethod]
public void WhoxNoAccount()
{
- _server.Parse(new Line($"354 * {Server.WhoType} user realip host nickname 0 :real"));
+ _server.Parse(new($"354 * {Server.WhoType} user realip host nickname 0 :real"));
var user = _server.Users["nickname"];
Assert.IsNull(user.Account);
diff --git a/IRCSharp.Tests/Tokenization/Format.cs b/IRCSharp.Tests/Tokenization/Format.cs
index 5dc589a..97d3702 100644
--- a/IRCSharp.Tests/Tokenization/Format.cs
+++ b/IRCSharp.Tests/Tokenization/Format.cs
@@ -1,5 +1,4 @@
using System;
-using System.Collections.Generic;
using IRCTokens;
using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -13,7 +12,7 @@ namespace IRCSharp.Tests.Tokenization
{
var line = new Line("PRIVMSG", "#channel", "hello")
{
- Tags = new Dictionary {{"id", "\\" + " " + ";" + "\r\n"}}
+ Tags = new() {{"id", "\\" + " " + ";" + "\r\n"}}
}.Format();
Assert.AreEqual("@id=\\\\\\s\\:\\r\\n PRIVMSG #channel hello", line);
@@ -30,7 +29,7 @@ namespace IRCSharp.Tests.Tokenization
[TestMethod]
public void NullTag()
{
- var line = new Line("PRIVMSG", "#channel", "hello") {Tags = new Dictionary {{"a", null}}}
+ var line = new Line("PRIVMSG", "#channel", "hello") {Tags = new() {{"a", null}}}
.Format();
Assert.AreEqual("@a PRIVMSG #channel hello", line);
@@ -39,7 +38,7 @@ namespace IRCSharp.Tests.Tokenization
[TestMethod]
public void EmptyTag()
{
- var line = new Line("PRIVMSG", "#channel", "hello") {Tags = new Dictionary {{"a", ""}}}
+ var line = new Line("PRIVMSG", "#channel", "hello") {Tags = new() {{"a", ""}}}
.Format();
Assert.AreEqual("@a PRIVMSG #channel hello", line);
diff --git a/IRCSharp.Tests/Tokenization/StatefulDecoder.cs b/IRCSharp.Tests/Tokenization/StatefulDecoder.cs
index 7b9992d..403309a 100644
--- a/IRCSharp.Tests/Tokenization/StatefulDecoder.cs
+++ b/IRCSharp.Tests/Tokenization/StatefulDecoder.cs
@@ -13,7 +13,7 @@ namespace IRCSharp.Tests.Tokenization
[TestInitialize]
public void Initialize()
{
- _decoder = new IRCTokens.StatefulDecoder();
+ _decoder = new();
}
[TestMethod]
@@ -45,7 +45,7 @@ namespace IRCSharp.Tests.Tokenization
public void EncodingIso8859()
{
var iso8859 = Encoding.GetEncoding("iso-8859-1");
- _decoder = new IRCTokens.StatefulDecoder {Encoding = iso8859};
+ _decoder = new() {Encoding = iso8859};
var bytes = iso8859.GetBytes("PRIVMSG #channel :hello Ç\r\n");
var lines = _decoder.Push(bytes, bytes.Length);
var line = new Line("PRIVMSG #channel :hello Ç");
@@ -56,7 +56,7 @@ namespace IRCSharp.Tests.Tokenization
public void EncodingFallback()
{
var latin1 = Encoding.GetEncoding("iso-8859-1");
- _decoder = new IRCTokens.StatefulDecoder {Encoding = null, Fallback = latin1};
+ _decoder = new() {Encoding = null, Fallback = latin1};
var bytes = latin1.GetBytes("PRIVMSG #channel hélló\r\n");
var lines = _decoder.Push(bytes, bytes.Length);
Assert.AreEqual(1, lines.Count);
diff --git a/IRCSharp.Tests/Tokenization/StatefulEncoder.cs b/IRCSharp.Tests/Tokenization/StatefulEncoder.cs
index 50d2bd5..a2d1863 100644
--- a/IRCSharp.Tests/Tokenization/StatefulEncoder.cs
+++ b/IRCSharp.Tests/Tokenization/StatefulEncoder.cs
@@ -12,7 +12,7 @@ namespace IRCSharp.Tests.Tokenization
[TestInitialize]
public void Initialize()
{
- _encoder = new IRCTokens.StatefulEncoder();
+ _encoder = new();
}
[TestMethod]
@@ -68,7 +68,7 @@ namespace IRCSharp.Tests.Tokenization
[TestMethod]
public void Clear()
{
- _encoder.Push(new Line("PRIVMSG #channel hello"));
+ _encoder.Push(new("PRIVMSG #channel hello"));
_encoder.Clear();
Assert.AreEqual(string.Empty, _encoder.Pending());
}
@@ -77,8 +77,8 @@ namespace IRCSharp.Tests.Tokenization
public void EncodingIso8859()
{
var iso8859 = Encoding.GetEncoding("iso-8859-1");
- _encoder = new IRCTokens.StatefulEncoder {Encoding = iso8859};
- _encoder.Push(new Line("PRIVMSG #channel :hello Ç"));
+ _encoder = new() {Encoding = iso8859};
+ _encoder.Push(new("PRIVMSG #channel :hello Ç"));
CollectionAssert.AreEqual(iso8859.GetBytes("PRIVMSG #channel :hello Ç\r\n"), _encoder.PendingBytes);
}
}
diff --git a/IRCStates/Casemap.cs b/IRCStates/Casemap.cs
index 4546e57..afbd499 100644
--- a/IRCStates/Casemap.cs
+++ b/IRCStates/Casemap.cs
@@ -13,7 +13,7 @@ namespace IRCStates
private const string AsciiUpperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private const string AsciiLowerChars = "abcdefghijklmnopqrstuvwxyz";
private const string Rfc1459UpperChars = AsciiUpperChars + @"[]~\";
- private const string Rfc1459LowerChars = AsciiLowerChars + @"{}^|";
+ private const string Rfc1459LowerChars = AsciiLowerChars + "{}^|";
private static string Replace(string s, string upper, string lower)
{
diff --git a/IRCStates/Channel.cs b/IRCStates/Channel.cs
index a9d2302..36f395f 100644
--- a/IRCStates/Channel.cs
+++ b/IRCStates/Channel.cs
@@ -6,22 +6,15 @@ namespace IRCStates
{
public class Channel
{
- public Channel()
- {
- Users = new Dictionary();
- ListModes = new Dictionary>();
- Modes = new Dictionary();
- }
-
public string Name { get; private set; }
public string NameLower { get; private set; }
- public Dictionary Users { get; private set; }
+ public Dictionary Users { get; private set; } = new Dictionary();
public string Topic { get; set; }
public string TopicSetter { get; set; }
public DateTime TopicTime { get; set; }
public DateTime Created { get; set; }
- public Dictionary> ListModes { get; private set; }
- public Dictionary Modes { get; private set; }
+ public Dictionary> ListModes { get; private set; } = new Dictionary>();
+ public Dictionary Modes { get; private set; } = new Dictionary();
public override string ToString()
{
diff --git a/IRCStates/ChannelUser.cs b/IRCStates/ChannelUser.cs
index bc5e99b..193aae3 100644
--- a/IRCStates/ChannelUser.cs
+++ b/IRCStates/ChannelUser.cs
@@ -4,12 +4,7 @@ namespace IRCStates
{
public class ChannelUser
{
- public ChannelUser()
- {
- Modes = new List();
- }
-
- public List Modes { get; }
+ public List Modes { get; } = new List();
private bool Equals(ChannelUser other)
{
diff --git a/IRCStates/IRCStates.csproj b/IRCStates/IRCStates.csproj
index 08b2cfa..64cb89b 100644
--- a/IRCStates/IRCStates.csproj
+++ b/IRCStates/IRCStates.csproj
@@ -1,7 +1,7 @@
- netstandard2.1;net6.0
+ netstandard2.1
IRCStates
1.3.0
Ben Harris
diff --git a/IRCStates/ISupport.cs b/IRCStates/ISupport.cs
index 8dfcb0c..1221ea6 100644
--- a/IRCStates/ISupport.cs
+++ b/IRCStates/ISupport.cs
@@ -9,26 +9,14 @@ namespace IRCStates
{
public class ISupport
{
- public ISupport()
- {
- Raw = new Dictionary();
- Modes = 3;
- CaseMapping = Casemap.CaseMapping.Rfc1459;
- Prefix = new ISupportPrefix("(ov)@+");
- ChanModes = new ISupportChanModes("b,k,l,imnpst");
- ChanTypes = new List {"#"};
- StatusMsg = new List();
- Whox = false;
- }
-
- public Dictionary Raw { get; }
+ public Dictionary Raw { get; } = new Dictionary();
public string Network { get; private set; }
- public ISupportChanModes ChanModes { get; private set; }
- public ISupportPrefix Prefix { get; private set; }
- public int? Modes { get; private set; }
- public Casemap.CaseMapping CaseMapping { get; private set; }
- public List ChanTypes { get; private set; }
- public List StatusMsg { get; private set; }
+ public ISupportChanModes ChanModes { get; private set; } = new ISupportChanModes("b,k,l,imnpst");
+ public ISupportPrefix Prefix { get; private set; } = new ISupportPrefix("(ov)@+");
+ public int? Modes { get; private set; } = 3;
+ public Casemap.CaseMapping CaseMapping { get; private set; } = Casemap.CaseMapping.Rfc1459;
+ public List ChanTypes { get; private set; } = new List {"#"};
+ public List StatusMsg { get; private set; } = new List();
public string CallerId { get; private set; }
public string Excepts { get; private set; }
public string Invex { get; private set; }
diff --git a/IRCStates/ISupportChanModes.cs b/IRCStates/ISupportChanModes.cs
index 5a175da..ed3d740 100644
--- a/IRCStates/ISupportChanModes.cs
+++ b/IRCStates/ISupportChanModes.cs
@@ -4,6 +4,7 @@ using System.Linq;
namespace IRCStates
{
+ // ReSharper disable once InconsistentNaming
public class ISupportChanModes
{
///
diff --git a/IRCStates/ISupportPrefix.cs b/IRCStates/ISupportPrefix.cs
index 146bdcc..2f20bd6 100644
--- a/IRCStates/ISupportPrefix.cs
+++ b/IRCStates/ISupportPrefix.cs
@@ -5,6 +5,7 @@ using System.Linq;
namespace IRCStates
{
+ // ReSharper disable once InconsistentNaming
public class ISupportPrefix
{
///
@@ -16,7 +17,7 @@ namespace IRCStates
{
if (splitVal == null) throw new ArgumentNullException(nameof(splitVal));
- var split = splitVal.Substring(1).Split(')', 2);
+ var split = splitVal[1..].Split(')', 2);
Modes = new List();
Modes.AddRange(split[0].Select(c => c.ToString(CultureInfo.InvariantCulture)));
Prefixes = new List();
diff --git a/IRCStates/Server.cs b/IRCStates/Server.cs
index 2cbbb92..7441d9e 100644
--- a/IRCStates/Server.cs
+++ b/IRCStates/Server.cs
@@ -46,6 +46,7 @@ namespace IRCStates
public Dictionary AvailableCaps { get; set; }
public List AgreedCaps { get; set; }
+ // ReSharper disable once InconsistentNaming
public ISupport ISupport { get; set; }
public bool HasCap { get; set; }
@@ -360,9 +361,8 @@ namespace IRCStates
RealName = realname;
}
- if (Users.ContainsKey(nicknameLower))
+ if (Users.TryGetValue(nicknameLower, out var user))
{
- var user = Users[nicknameLower];
emit.User = user;
user.RealName = realname;
}
@@ -387,9 +387,8 @@ namespace IRCStates
Away = away;
}
- if (Users.ContainsKey(nicknameLower))
+ if (Users.TryGetValue(nicknameLower, out var user))
{
- var user = Users[nicknameLower];
emit.User = user;
user.Away = away;
}
@@ -414,9 +413,8 @@ namespace IRCStates
Account = account;
}
- if (Users.ContainsKey(nicknameLower))
+ if (Users.TryGetValue(nicknameLower, out var user))
{
- var user = Users[nicknameLower];
emit.User = user;
user.Account = account;
}
@@ -473,7 +471,7 @@ namespace IRCStates
foreach (var key in tokens.Keys)
if (key.StartsWith('-'))
{
- var k = key.Substring(1);
+ var k = key[1..];
if (AgreedCaps.Contains(k)) AgreedCaps.Remove(k);
}
else if (!AgreedCaps.Contains(key) && AvailableCaps.ContainsKey(key))
@@ -518,9 +516,8 @@ namespace IRCStates
HostName = hostname;
}
- if (Users.ContainsKey(nicknameLower))
+ if (Users.TryGetValue(nicknameLower, out var user))
{
- var user = Users[nicknameLower];
emit.User = user;
user.UserName = username;
user.HostName = hostname;
@@ -688,7 +685,7 @@ namespace IRCStates
if (ISupport.StatusMsg.Contains(t))
{
statusMsg.Add(t);
- target = target.Substring(1);
+ target = target[1..];
}
else
{
@@ -895,8 +892,8 @@ namespace IRCStates
break;
}
- var hostmask = new Hostmask(nick.Substring(modes.Length));
- var user = GetUser(hostmask.NickName) ?? AddUser(hostmask.NickName);
+ var hostmask = new Hostmask(nick[modes.Length..]);
+ var user = GetUser(hostmask.NickName) ?? AddUser(hostmask.NickName);
users.Add(user);
var channelUser = UserJoin(channel, user);
diff --git a/IRCStates/User.cs b/IRCStates/User.cs
index 97abb15..4637ba6 100644
--- a/IRCStates/User.cs
+++ b/IRCStates/User.cs
@@ -4,11 +4,6 @@ namespace IRCStates
{
public class User
{
- public User()
- {
- Channels = new HashSet();
- }
-
public string NickName { get; private set; }
public string NickNameLower { get; private set; }
@@ -17,7 +12,7 @@ namespace IRCStates
public string RealName { get; set; }
public string Account { get; set; }
public string Away { get; set; }
- public HashSet Channels { get; private set; }
+ public HashSet Channels { get; private set; } = new HashSet();
public override string ToString()
{
diff --git a/IRCTokens/IRCTokens.csproj b/IRCTokens/IRCTokens.csproj
index 0564ab3..c6cbecd 100644
--- a/IRCTokens/IRCTokens.csproj
+++ b/IRCTokens/IRCTokens.csproj
@@ -1,7 +1,7 @@
- netstandard2.1;net6.0
+ netstandard2.1
IRCTokens
1.3.0
Ben Harris
diff --git a/IRCTokens/Line.cs b/IRCTokens/Line.cs
index bf3cc91..491ea2e 100644
--- a/IRCTokens/Line.cs
+++ b/IRCTokens/Line.cs
@@ -13,7 +13,7 @@ namespace IRCTokens
{
private static readonly string[] TagUnescaped = {"\\", " ", ";", "\r", "\n"};
- private static readonly string[] TagEscaped = {"\\\\", "\\s", "\\:", "\\r", "\\n"};
+ private static readonly string[] TagEscaped = {@"\\", "\\s", "\\:", "\\r", "\\n"};
private Hostmask _hostmask;
@@ -47,7 +47,7 @@ namespace IRCTokens
var messageTags = split[0];
line = split[1];
- foreach (var part in messageTags.Substring(1).Split(';'))
+ foreach (var part in messageTags[1..].Split(';'))
if (part.Contains('=', StringComparison.Ordinal))
{
split = part.Split('=', 2);
@@ -77,7 +77,7 @@ namespace IRCTokens
if (Params[0].StartsWith(':'))
{
- Source = Params[0].Substring(1);
+ Source = Params[0][1..];
Params.RemoveAt(0);
}
diff --git a/global.json b/global.json
new file mode 100644
index 0000000..dad2db5
--- /dev/null
+++ b/global.json
@@ -0,0 +1,7 @@
+{
+ "sdk": {
+ "version": "8.0.0",
+ "rollForward": "latestMajor",
+ "allowPrerelease": true
+ }
+}
\ No newline at end of file