Skip to content

Commit

Permalink
Added more ImapToken unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jstedfast committed Sep 12, 2023
1 parent 6ea9f79 commit 4280af5
Showing 1 changed file with 48 additions and 2 deletions.
50 changes: 48 additions & 2 deletions UnitTests/Net/Imap/ImapStreamTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ public async Task TestReadLineAsync ()
public void TestReadToken ()
{
using (var stream = new ImapStream (new DummyNetworkStream (), new NullProtocolLogger ())) {
var data = Encoding.ASCII.GetBytes ("* atom (\\flag \"qstring\" NIL) [] \r\n");
var data = Encoding.ASCII.GetBytes ("* atom (\\flag \"qstring\" NIL Nil nil) [] \r\n");

stream.Stream.Write (data, 0, data.Length);
stream.Stream.Position = 0;
Expand Down Expand Up @@ -218,6 +218,14 @@ public void TestReadToken ()
Assert.AreEqual (ImapTokenType.Nil, token.Type);
Assert.AreEqual ("NIL", token.ToString ());

token = stream.ReadToken (CancellationToken.None);
Assert.AreEqual (ImapTokenType.Nil, token.Type);
Assert.AreEqual ("Nil", token.ToString ());

token = stream.ReadToken (CancellationToken.None);
Assert.AreEqual (ImapTokenType.Nil, token.Type);
Assert.AreEqual ("nil", token.ToString ());

token = stream.ReadToken (CancellationToken.None);
Assert.AreEqual (ImapTokenType.CloseParen, token.Type);
Assert.AreEqual ("')'", token.ToString ());
Expand Down Expand Up @@ -245,7 +253,7 @@ public void TestReadToken ()
public async Task TestReadTokenAsync ()
{
using (var stream = new ImapStream (new DummyNetworkStream (), new NullProtocolLogger ())) {
var data = Encoding.ASCII.GetBytes ("* atom (\\flag \"qstring\" NIL) [] \r\n");
var data = Encoding.ASCII.GetBytes ("* atom (\\flag \"qstring\" NIL Nil nil) [] \r\n");

stream.Stream.Write (data, 0, data.Length);
stream.Stream.Position = 0;
Expand Down Expand Up @@ -276,6 +284,14 @@ public async Task TestReadTokenAsync ()
Assert.AreEqual (ImapTokenType.Nil, token.Type);
Assert.AreEqual ("NIL", token.ToString ());

token = stream.ReadToken (CancellationToken.None);
Assert.AreEqual (ImapTokenType.Nil, token.Type);
Assert.AreEqual ("Nil", token.ToString ());

token = stream.ReadToken (CancellationToken.None);
Assert.AreEqual (ImapTokenType.Nil, token.Type);
Assert.AreEqual ("nil", token.ToString ());

token = await stream.ReadTokenAsync (CancellationToken.None);
Assert.AreEqual (ImapTokenType.CloseParen, token.Type);
Assert.AreEqual ("')'", token.ToString ());
Expand All @@ -299,6 +315,36 @@ public async Task TestReadTokenAsync ()
}
}

[Test]
public void TestReadContinuationToken ()
{
using (var stream = new ImapStream (new DummyNetworkStream (), new NullProtocolLogger ())) {
var data = Encoding.ASCII.GetBytes ("+ Please continue...\r\n");

stream.Stream.Write (data, 0, data.Length);
stream.Stream.Position = 0;

var token = stream.ReadToken (CancellationToken.None);
Assert.AreEqual (ImapTokenType.Plus, token.Type);
Assert.AreEqual ("'+'", token.ToString ());
}
}

[Test]
public async Task TestReadContinuationTokenAsync ()
{
using (var stream = new ImapStream (new DummyNetworkStream (), new NullProtocolLogger ())) {
var data = Encoding.ASCII.GetBytes ("+ Please continue...\r\n");

stream.Stream.Write (data, 0, data.Length);
stream.Stream.Position = 0;

var token = await stream.ReadTokenAsync (CancellationToken.None);
Assert.AreEqual (ImapTokenType.Plus, token.Type);
Assert.AreEqual ("'+'", token.ToString ());
}
}

[Test]
public void TestReadBrokenLiteralToken ()
{
Expand Down

0 comments on commit 4280af5

Please sign in to comment.