Skip to content

Commit 3d03af5

Browse files
committed
contextual error message unit tests
1 parent ca62ef0 commit 3d03af5

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

tests/ParserTests/ErrorTests.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,22 @@
33
using jsonparser.JsonModel;
44
using NFluent;
55
using sly.lexer;
6+
using sly.lexer.fluent;
67
using sly.parser;
78
using sly.parser.generator;
89
using Xunit;
910

1011
namespace ParserTests
1112
{
13+
14+
[Lexer(KeyWordIgnoreCase = true)]
15+
public enum ContextualToken
16+
{
17+
A,
18+
B,
19+
C
20+
}
21+
1222
public class ErrorTests
1323
{
1424
[Fact]
@@ -154,13 +164,21 @@ public void TestContextualError()
154164
Check.That(parsed.Errors).CountIs(1);
155165
var error = parsed.Errors[0];
156166
var message = error.ContextualErrorMessage;
167+
var lines = message.GetLines();
168+
Check.That(lines).CountIs(4);
169+
Check.That(lines[2]).Contains("1 |a c b");
170+
Check.That(lines[3]).Contains(" | ^^^ expected B");
157171

158172
source = "a , c b";
159173
parsed = build.Result.Parse(source);
160174
Check.That(parsed).Not.IsOkParsing();
161175
Check.That(parsed.Errors).CountIs(1);
162176
error = parsed.Errors[0];
163177
message = error.ContextualErrorMessage;
178+
lines = message.GetLines();
179+
Check.That(lines).CountIs(4);
180+
Check.That(lines[2]).Contains("0 |a , c b");
181+
Check.That(lines[3]).Contains(" | ^^^ unexpected char ','");
164182

165183

166184

0 commit comments

Comments
 (0)