-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9296761
commit fc29edf
Showing
5 changed files
with
127 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
using Pasper.Json.Parsing; | ||
using Pasper.Json.Tokens; | ||
|
||
namespace Pasper.Json.Tests.Parsing; | ||
|
||
public sealed partial class JsonLexerTests | ||
{ | ||
[Fact] | ||
public void MoveNext_ShouldMoveToNextToken() | ||
{ | ||
var lexer = new JsonLexer("{}"); | ||
var tokenAvailable = lexer.MoveNext(); | ||
Assert.True(tokenAvailable); | ||
Assert.NotNull(lexer.Current); | ||
Assert.IsType<BeginObjectToken>(lexer.Current); | ||
|
||
tokenAvailable = lexer.MoveNext(); | ||
Assert.True(tokenAvailable); | ||
Assert.NotNull(lexer.Current); | ||
Assert.IsType<EndObjectToken>(lexer.Current); | ||
} | ||
|
||
[Fact] | ||
public void MoveNext_ShouldReturnFalseWhenNoMoreTokens() | ||
{ | ||
var lexer = new JsonLexer("{}"); | ||
var tokenAvailable = lexer.MoveNext(); | ||
Assert.True(tokenAvailable); | ||
Assert.NotNull(lexer.Current); | ||
|
||
tokenAvailable = lexer.MoveNext(); | ||
Assert.True(tokenAvailable); | ||
Assert.NotNull(lexer.Current); | ||
|
||
tokenAvailable = lexer.MoveNext(); | ||
Assert.False(tokenAvailable); | ||
} | ||
|
||
[Fact] | ||
public void MoveNext_ShouldReturnFalseWhenNoTokens() | ||
{ | ||
var lexer = new JsonLexer(""); | ||
var tokenAvailable = lexer.MoveNext(); | ||
Assert.False(tokenAvailable); | ||
} | ||
|
||
[Fact] | ||
public void MoveNext_ShouldSetPreviousToken() | ||
{ | ||
var lexer = new JsonLexer("{}"); | ||
var tokenAvailable = lexer.MoveNext(); | ||
Assert.True(tokenAvailable); | ||
Assert.NotNull(lexer.Current); | ||
Assert.Null(lexer.Previous); | ||
|
||
tokenAvailable = lexer.MoveNext(); | ||
Assert.True(tokenAvailable); | ||
Assert.NotNull(lexer.Current); | ||
Assert.NotNull(lexer.Previous); | ||
Assert.IsType<BeginObjectToken>(lexer.Previous); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
using Pasper.Json.Parsing; | ||
|
||
namespace Pasper.Json.Tests.Parsing; | ||
|
||
public sealed partial class JsonLexerTests | ||
{ | ||
[Fact] | ||
public void Reset_ShouldResetLexer() | ||
{ | ||
var lexer = new JsonLexer("{}"); | ||
var tokenAvailable = lexer.MoveNext(); | ||
Assert.True(tokenAvailable); | ||
Assert.NotNull(lexer.Current); | ||
|
||
tokenAvailable = lexer.MoveNext(); | ||
Assert.True(tokenAvailable); | ||
Assert.NotNull(lexer.Current); | ||
Assert.NotNull(lexer.Previous); | ||
Assert.NotEqual(lexer.Current, lexer.Previous); | ||
|
||
lexer.Reset(); | ||
Assert.Null(lexer.Current); | ||
Assert.Null(lexer.Previous); | ||
} | ||
} |
22 changes: 22 additions & 0 deletions
22
test/Pasper.Json.Tests/Parsing/JsonLexer/SkipIgnoredCharacters.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
using Pasper.Json.Parsing; | ||
|
||
namespace Pasper.Json.Tests.Parsing; | ||
|
||
public sealed partial class JsonLexerTests | ||
{ | ||
[Theory] | ||
[InlineData(" ")] | ||
[InlineData("\t")] | ||
[InlineData("\n")] | ||
[InlineData("\r")] | ||
[InlineData("\r\n")] | ||
[InlineData(":")] | ||
[InlineData(",")] | ||
public void SkipIgnoredCharacters(string input) | ||
{ | ||
var lexer = new JsonLexer(input); | ||
var tokenAvailable = lexer.MoveNext(); | ||
Assert.False(tokenAvailable); | ||
Assert.Null(lexer.Current); | ||
} | ||
} |