Ejemplo n.º 1
0
        public void AllowsSkippingASubTree()
        {
            var ast = Parser.Parse("{ a, b { x }, c }", new ParseOptions
            {
                NoLocation = true,
            });
            var visitor = new VisitedNodes(node => (node is Field && (node as Field).Name.Value == "b") ? null : node);

            visitor.Visit(ast);
            visitor.Visited.ShouldBeEquivalentTo(ImmutableArray.Create(
                                                     Tuple.Create(true, NodeType.Document, (object)null),
                                                     Tuple.Create(true, NodeType.OperationDefinition, (object)null),
                                                     Tuple.Create(true, NodeType.SelectionSet, (object)null),
                                                     Tuple.Create(true, NodeType.Field, (object)null),
                                                     Tuple.Create(true, NodeType.Name, (object)"a"),
                                                     Tuple.Create(false, NodeType.Name, (object)"a"),
                                                     Tuple.Create(false, NodeType.Field, (object)null),
                                                     Tuple.Create(true, NodeType.Field, (object)null),
                                                     Tuple.Create(true, NodeType.Field, (object)null),
                                                     Tuple.Create(true, NodeType.Name, (object)"c"),
                                                     Tuple.Create(false, NodeType.Name, (object)"c"),
                                                     Tuple.Create(false, NodeType.Field, (object)null),
                                                     Tuple.Create(false, NodeType.SelectionSet, (object)null),
                                                     Tuple.Create(false, NodeType.OperationDefinition, (object)null),
                                                     Tuple.Create(false, NodeType.Document, (object)null)
                                                     ));
        }
Ejemplo n.º 2
0
 public void AllowsSkippingASubTree()
 {
     var ast = Parser.Parse("{ a, b { x }, c }", new ParseOptions
     {
         NoLocation = true,
     });
     var visitor = new VisitedNodes(node => (node is Field && (node as Field).Name.Value == "b") ? null : node);
     visitor.Visit(ast);
     visitor.Visited.ShouldBeEquivalentTo(ImmutableArray.Create(
         Tuple.Create(true, NodeType.Document, (object)null),
         Tuple.Create(true, NodeType.OperationDefinition, (object)null),
         Tuple.Create(true, NodeType.SelectionSet, (object)null),
         Tuple.Create(true, NodeType.Field, (object)null),
         Tuple.Create(true, NodeType.Name, (object)"a"),
         Tuple.Create(false, NodeType.Name, (object)"a"),
         Tuple.Create(false, NodeType.Field, (object)null),
         Tuple.Create(true, NodeType.Field, (object)null),
         Tuple.Create(true, NodeType.Field, (object)null),
         Tuple.Create(true, NodeType.Name, (object)"c"),
         Tuple.Create(false, NodeType.Name, (object)"c"),
         Tuple.Create(false, NodeType.Field, (object)null),
         Tuple.Create(false, NodeType.SelectionSet, (object)null),
         Tuple.Create(false, NodeType.OperationDefinition, (object)null),
         Tuple.Create(false, NodeType.Document, (object)null)
     ));
 }