118 lines
3.8 KiB
C#
118 lines
3.8 KiB
C#
using System.Collections.Generic;
|
|
using IRCStates;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
namespace IRCSharp.Tests.State
|
|
{
|
|
[TestClass]
|
|
public class Emit
|
|
{
|
|
private Server _server;
|
|
|
|
[TestInitialize]
|
|
public void TestInitialize()
|
|
{
|
|
_server = new("test");
|
|
_server.Parse(new("001 nickname"));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void EmitJoin()
|
|
{
|
|
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(":other JOIN #chan"));
|
|
Assert.IsNotNull(emit);
|
|
Assert.AreEqual("JOIN", emit.Command);
|
|
Assert.IsFalse(emit.Self);
|
|
Assert.AreEqual(_server.Users["other"], emit.User);
|
|
Assert.AreEqual(_server.Channels["#chan"], emit.Channel);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void EmitPrivmsg()
|
|
{
|
|
_server.Parse(new(":nickname JOIN #chan"));
|
|
var emit = _server.Parse(new(":nickname PRIVMSG #chan :hello"));
|
|
|
|
Assert.IsNotNull(emit);
|
|
Assert.AreEqual("PRIVMSG", emit.Command);
|
|
Assert.AreEqual("hello", emit.Text);
|
|
Assert.IsTrue(emit.SelfSource);
|
|
Assert.AreEqual(_server.Users["nickname"], emit.User);
|
|
Assert.AreEqual(_server.Channels["#chan"], emit.Channel);
|
|
|
|
_server.Parse(new(":other JOIN #chan"));
|
|
emit = _server.Parse(new(":other PRIVMSG #chan :hello2"));
|
|
|
|
Assert.IsNotNull(emit);
|
|
Assert.AreEqual("PRIVMSG", emit.Command);
|
|
Assert.AreEqual("hello2", emit.Text);
|
|
Assert.IsFalse(emit.SelfSource);
|
|
Assert.AreEqual(_server.Users["other"], emit.User);
|
|
Assert.AreEqual(_server.Channels["#chan"], emit.Channel);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void EmitPrivmsgNoJoin()
|
|
{
|
|
_server.Parse(new(":nickname JOIN #chan"));
|
|
var emit = _server.Parse(new(":other PRIVMSG #chan :hello"));
|
|
|
|
Assert.IsNotNull(emit);
|
|
Assert.AreEqual("PRIVMSG", emit.Command);
|
|
Assert.AreEqual("hello", emit.Text);
|
|
Assert.IsFalse(emit.SelfSource);
|
|
Assert.IsNotNull(emit.User);
|
|
|
|
var channel = _server.Channels["#chan"];
|
|
Assert.AreEqual(channel, emit.Channel);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void EmitKick()
|
|
{
|
|
_server.Parse(new(":nickname JOIN #chan"));
|
|
|
|
var user = _server.Users["nickname"];
|
|
var channel = _server.Channels["#chan"];
|
|
_server.Parse(new(":other JOIN #chan"));
|
|
var userOther = _server.Users["other"];
|
|
var emit = _server.Parse(new(":nickname KICK #chan other :reason"));
|
|
|
|
Assert.IsNotNull(emit);
|
|
Assert.AreEqual("KICK", emit.Command);
|
|
Assert.AreEqual("reason", emit.Text);
|
|
Assert.IsTrue(emit.SelfSource);
|
|
Assert.AreEqual(user, emit.UserSource);
|
|
Assert.AreEqual(userOther, emit.UserTarget);
|
|
Assert.AreEqual(channel, emit.Channel);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void EmitMode()
|
|
{
|
|
var emit = _server.Parse(new("MODE nickname x+i-i+wi-wi"));
|
|
|
|
Assert.IsNotNull(emit);
|
|
Assert.AreEqual("MODE", emit.Command);
|
|
Assert.IsTrue(emit.SelfTarget);
|
|
CollectionAssert.AreEqual(new List<string>
|
|
{
|
|
"+x",
|
|
"+i",
|
|
"-i",
|
|
"+w",
|
|
"+i",
|
|
"-w",
|
|
"-i"
|
|
}, emit.Tokens);
|
|
}
|
|
}
|
|
}
|