From 21f1e95fb8e935134a969bc3d729964d8d2aadfa Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Thu, 14 May 2020 23:06:10 -0400 Subject: rename Irc to IRC --- IRCStates/Tests/Cap.cs | 131 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 IRCStates/Tests/Cap.cs (limited to 'IRCStates/Tests/Cap.cs') diff --git a/IRCStates/Tests/Cap.cs b/IRCStates/Tests/Cap.cs new file mode 100644 index 0000000..3c0faba --- /dev/null +++ b/IRCStates/Tests/Cap.cs @@ -0,0 +1,131 @@ +using System.Collections.Generic; +using IRCTokens; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace IRCStates.Tests +{ + [TestClass] + public class Cap + { + private Server _server; + + [TestInitialize] + public void TestInitialize() + { + _server = new Server("test"); + } + + [TestMethod] + public void LSOneLine() + { + Assert.IsFalse(_server.HasCap); + CollectionAssert.AreEqual(new Dictionary(), _server.AvailableCaps); + _server.Parse(new Line("CAP * LS :a b")); + CollectionAssert.AreEqual(new Dictionary {{"a", ""}, {"b", ""}}, _server.AvailableCaps); + } + + [TestMethod] + public void LSTwoLines() + { + _server.Parse(new Line("CAP * LS * :a b")); + CollectionAssert.AreEqual(new Dictionary(), _server.AvailableCaps); + _server.Parse(new Line("CAP * LS :c")); + Assert.IsTrue(_server.AvailableCaps.ContainsKey("a")); + Assert.IsTrue(_server.AvailableCaps.ContainsKey("b")); + Assert.IsTrue(_server.AvailableCaps.ContainsKey("c")); + } + + [TestMethod] + public void LSValues() + { + _server.Parse(new Line("CAP * LS :a b= c=1")); + CollectionAssert.AreEqual(new Dictionary {{"a", ""}, {"b", ""}, {"c", "1"}}, + _server.AvailableCaps); + } + + [TestMethod] + public void ACKOneLine() + { + _server.Parse(new Line("CAP * LS :a b")); + _server.Parse(new Line("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")); + 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")); + CollectionAssert.AreEqual(new List(), _server.AgreedCaps); + } + + [TestMethod] + public void NEWNoLS() + { + _server.Parse(new Line("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")); + 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")); + CollectionAssert.AreEqual(new Dictionary {{"a", ""}, {"b", ""}, {"c", ""}}, + _server.AvailableCaps); + } + + [TestMethod] + public void DELNotAcked() + { + _server.Parse(new Line("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")); + CollectionAssert.AreEqual(new Dictionary(), _server.AvailableCaps); + CollectionAssert.AreEqual(new List(), _server.AgreedCaps); + } + + [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")); + CollectionAssert.AreEqual(new Dictionary {{"b", ""}}, _server.AvailableCaps); + CollectionAssert.AreEqual(new List {"b"}, _server.AgreedCaps); + } + + [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")); + CollectionAssert.AreEqual(new Dictionary(), _server.AvailableCaps); + CollectionAssert.AreEqual(new List(), _server.AgreedCaps); + } + } +} -- cgit 1.4.1