Exemplo n.º 1
0
        public void CreateSystaxTree_CorrectSequence2()
        {
            // Arrange
            var grammar = new QueryParser();
            var tokens  = new object[]
            {
                new QuerySpecialToken("@"),
                "query1",
                new QuerySpecialToken("@"),
                "query2"
            };
            var expected = new QueryAstBase[]
            {
                new QueryNameAst {
                    Value = "query1"
                },
                new QueryNameAst {
                    Value = "query2"
                }
            };

            // Act
            var result = grammar.Parse(tokens);

            // Assert
            Assert.True(Enumerable.SequenceEqual(result, expected));
        }
Exemplo n.º 2
0
        public object Visit(QueryAstBase node, object currentData)
        {
            if (Node != node || CurrentData != currentData)
            {
                throw new Exception();
            }

            return(Result);
        }
Exemplo n.º 3
0
        public void CreateSystaxTree_EmptySequence()
        {
            // Arrange
            var grammar  = new QueryParser();
            var tokens   = new object[0];
            var expected = new QueryAstBase[0];

            // Act
            var result = grammar.Parse(tokens);

            // Assert
            Assert.True(Enumerable.SequenceEqual(result, expected));
        }
Exemplo n.º 4
0
        public void CreateSystaxTree_CorrectSequence1()
        {
            // Arrange
            var grammar = new QueryParser();
            var tokens  = new object[]
            {
                new QuerySpecialToken("$"),
                "query1",
                new QuerySpecialToken("."),
                "query2",
                new QuerySpecialToken("#"),
                "query3",
                new QuerySpecialToken("["),
                1,
                new QuerySpecialToken("]"),
            };
            var expected = new QueryAstBase[]
            {
                new QueryGlobalAst {
                    Value = "query1"
                },
                new QueryFirstExpandAst(),
                new QueryNameAst {
                    Value = "query2"
                },
                new QueryComponentAst {
                    Value = "query3"
                },
                new QueryIndexAst {
                    Value = 1
                }
            };

            // Act
            var result = grammar.Parse(tokens);

            // Assert
            Assert.True(Enumerable.SequenceEqual(result, expected));
        }
Exemplo n.º 5
0
 public AstVisitorMock(QueryAstBase node, object currentData, object result)
 {
     Node        = node;
     CurrentData = currentData;
     Result      = result;
 }