73 lines
2.1 KiB
C#
73 lines
2.1 KiB
C#
using System.Linq;
|
|
using System.Text;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
namespace IrcTokens.Tests
|
|
{
|
|
[TestClass]
|
|
public class StatefulEncoderTests
|
|
{
|
|
private StatefulEncoder _encoder;
|
|
|
|
[TestInitialize]
|
|
public void TestInitialize()
|
|
{
|
|
_encoder = new StatefulEncoder();
|
|
}
|
|
|
|
[TestMethod]
|
|
public void TestPush()
|
|
{
|
|
var line = new Line("PRIVMSG #channel hello");
|
|
_encoder.Push(line);
|
|
Assert.AreEqual("PRIVMSG #channel hello\r\n", _encoder.Pending);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void TestPopPartial()
|
|
{
|
|
var line = new Line("PRIVMSG #channel hello");
|
|
_encoder.Push(line);
|
|
_encoder.Pop("PRIVMSG #channel hello".Length);
|
|
Assert.AreEqual("\r\n", _encoder.Pending);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void TestPopReturned()
|
|
{
|
|
var line = new Line("PRIVMSG #channel hello");
|
|
_encoder.Push(line);
|
|
_encoder.Push(line);
|
|
var lines = _encoder.Pop("PRIVMSG #channel hello\r\n".Length);
|
|
Assert.AreEqual(1, lines.Count);
|
|
Assert.AreEqual(line, lines[0]);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void TestPopNoneReturned()
|
|
{
|
|
var line = new Line("PRIVMSG #channel hello");
|
|
_encoder.Push(line);
|
|
var lines = _encoder.Pop(1);
|
|
Assert.AreEqual(0, lines.Count);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void TestClear()
|
|
{
|
|
_encoder.Push(new Line("PRIVMSG #channel hello"));
|
|
_encoder.Clear();
|
|
Assert.AreEqual(string.Empty, _encoder.Pending);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void TestEncoding()
|
|
{
|
|
var iso88592 = Encoding.GetEncodings().Single(ei => ei.Name == "iso-8859-2");
|
|
_encoder = new StatefulEncoder {Encoding = iso88592};
|
|
_encoder.Push(new Line("PRIVMSG #channel :hello Č"));
|
|
Assert.AreEqual("PRIVMSG #channel :hello Č\r\n", _encoder.Pending);
|
|
}
|
|
}
|
|
}
|