Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        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));
        }