/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.UnitTests/Ast/AstTraversalTests.cs
67 строк
1 KB
Ivan Kozhin
Initial commit
10 окт 2022, 19:37
10 окт 2022, 19:37
2ca82cf
Код
Авторство
О чём код?
using System.Text; using Xunit; using QueryCat.Backend.Ast; using QueryCat.Backend.Ast.Nodes; namespace QueryCat.UnitTests.Ast; /// <summary> /// Tests for <see cref="AstTraversal" />. /// </summary> public class AstTraversalTests { /* * 1 * 2 3 * 4 5 */ private readonly EmptyNode _root; private readonly EmptyNodesVisitor _emptyNodesVisitor = new(); private readonly AstTraversal _astTraversal; private class EmptyNodesVisitor : AstVisitor { public StringBuilder Calls { get; } = new(); /// <inheritdoc /> public override void Run(IAstNode node) { } /// <inheritdoc /> public override void Visit(EmptyNode node) { Calls.Append(node.Value); } } public AstTraversalTests() { _root = new EmptyNode("1", new EmptyNode("2", new EmptyNode("4"), new EmptyNode("5")), new EmptyNode("3")); _astTraversal = new AstTraversal(_emptyNodesVisitor); } [Fact] public void PreOrder_Traverse_ShouldTraverseCorrectly() { // Act. _astTraversal.PreOrder(_root); // Assert. Assert.Equal("12453", _emptyNodesVisitor.Calls.ToString()); } [Fact] public void PostOrder_Traverse_ShouldTraverseCorrectly() { // Act. _astTraversal.PostOrder(_root); // Assert. Assert.Equal("45231", _emptyNodesVisitor.Calls.ToString()); } }