public static IReadOnlyList <EnumType> Collect(ISchema schema, DocumentNode node) { var visitor = new CollectUsedEnumTypesVisitor(); visitor._schema = schema; visitor.Visit(node, null); return(visitor._enumTypes.OfType <EnumType>().ToArray()); }
public void Collect_EnumTypes_None_Found() { // arrange ISchema schema = CreateSchema(); DocumentNode document = Utf8GraphQLParser.Parse( @" { droid(id: ""foo"") { name } } "); // act IReadOnlyList <EnumType> enumTypes = CollectUsedEnumTypesVisitor.Collect(schema, document); // assert Assert.Empty(enumTypes); }
public void Collect_EnumTypes_Found_One_In_Field_Return_Type() { // arrange ISchema schema = CreateSchema(); DocumentNode document = Utf8GraphQLParser.Parse( @" { droid(id: ""foo"") { appearsIn } } "); // act IReadOnlyList <EnumType> enumTypes = CollectUsedEnumTypesVisitor.Collect(schema, document); // assert Assert.Collection(enumTypes, t => Assert.Equal("Episode", t.Name)); }
public void Collect_EnumTypes_Found_One_In_Argument() { // arrange ISchema schema = CreateSchema(); DocumentNode document = Utf8GraphQLParser.Parse( @" query getHero($e: Episode) { hero(episode: $e) { name } } "); // act IReadOnlyList <EnumType> enumTypes = CollectUsedEnumTypesVisitor.Collect(schema, document); // assert Assert.Collection(enumTypes, t => Assert.Equal("Episode", t.Name)); }