Skip to content

Commit

Permalink
test: add parser and lexer error message tests
Browse files Browse the repository at this point in the history
  • Loading branch information
alirezanet committed Oct 21, 2023
1 parent 85ae398 commit ec45a4f
Showing 1 changed file with 27 additions and 1 deletion.
28 changes: 27 additions & 1 deletion test/Gridify.Tests/ErrorMessageTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using Gridify.Syntax;
using Xunit;
using Xunit.Abstractions;

Expand Down Expand Up @@ -35,7 +36,32 @@ public void FilteringError_WhenInvalidCharacterDetected_ShouldReturnErrorWithCha
// assert
var exception = Assert.Throws<GridifyFilteringException>(act);
_testOutputHelper.WriteLine(exception.Message);
Assert.Contains($"at index {index.ToString()}", exception.Message);
Assert.Contains($", at index {index.ToString()}", exception.Message);
Assert.Contains("bad character input", exception.Message);
}

[Theory]
[InlineData("test=(1234)", 5, SyntaxKind.OpenParenthesisToken, SyntaxKind.ValueToken)]
[InlineData("test(=123", 4, SyntaxKind.OpenParenthesisToken, SyntaxKind.Operator)]
[InlineData("(test=2", 7, SyntaxKind.End, SyntaxKind.CloseParenthesis)]
[InlineData("test=,", 6, SyntaxKind.End, SyntaxKind.FieldToken)] // test=, is valid if there is another expression after <AND> operator
[InlineData("test=2,2", 7, SyntaxKind.BadToken, SyntaxKind.FieldToken)]
public void FilteringError_WhenInvalidTokenDetected_ShouldReturnErrorWithExpectedToken(
string filter,
int index,
SyntaxKind unexpectedToken,
SyntaxKind expectedToken)
{
// arrange
var dataSource = new List<TestClass>().AsQueryable();
var gq = new GridifyQuery() { Filter = filter };

// act
var act = () => dataSource.ApplyFiltering(gq);

// assert
var exception = Assert.Throws<GridifyFilteringException>(act);
_testOutputHelper.WriteLine(exception.Message);
Assert.Contains($"Unexpected token <{unexpectedToken}> at index {index}, expected <{expectedToken}>", exception.Message);
}
}

0 comments on commit ec45a4f

Please sign in to comment.