コード例 #1
0
        public void StringList()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Parser.Default.Parse(@"
                {
                    stringList
                }
            ");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #2
0
        public void VariableUsedInListInput()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Parser.Default.Parse(@"
                query queryWithListInput($value: Bool)
                {
                    booleanList(booleanListArg: [ $value ])
                }");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #3
0
        public void SkipDirectiveIsInTheRightPlace()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Utf8GraphQLParser.Parse(@"
                query a {
                    field @skip(if: $foo)
                }
            ");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #4
0
        public void AllInputObjectFieldsExist()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Parser.Default.Parse(@"
                {
                    findDog(complex: { name: ""Fido"" })
                }
            ");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #5
0
        public void NoFieldAmbiguity()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Parser.Default.Parse(@"
                {
                    findDog(complex: { name: ""A"", owner: ""B"" })
                }
            ");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #6
0
        public void NestedRequiredFieldsHaveValidValue()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Utf8GraphQLParser.Parse(@"
                {
                    findDog2(complex: { name: ""Foo"" child: { name: ""123"" } })
                }
            ");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #7
0
        public void ArgOnOptional()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Parser.Default.Parse(@"
                fragment argOnOptional on Dog {
                    isHousetrained(atOtherHomes: true) @include(if: true)
                }
            ");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #8
0
        public void ArgOnRequiredArg()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Parser.Default.Parse(@"
                fragment argOnRequiredArg on Dog {
                    doesKnowCommand(dogCommand: SIT)
                }
            ");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #9
0
        public void InterfaceFieldSelectionOnPet()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Parser.Default.Parse(@"
                fragment interfaceFieldSelection on Pet {
                    name
                }
            ");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #10
0
        public void IntrospectionFieldsOnObject()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Utf8GraphQLParser.Parse(@"
                fragment interfaceFieldSelection on Cat {
                    __typename
                }
            ");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #11
0
        public void GoodBooleanArgDefault()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Parser.Default.Parse(@"
                fragment goodBooleanArgDefault on Arguments {
                    booleanArgField
                }
            ");

            // act
            var validator = new RequiredArgumentRule();
            QueryValidationResult result = validator.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }
コード例 #12
0
        public void VariableUsedInComplexInput()
        {
            // arrange
            Schema       schema = ValidationUtils.CreateSchema();
            DocumentNode query  = Parser.Default.Parse(@"
                query queryWithComplexInput($name: String)
                {
                    findDog(complex: { name: $name }) {
                        name
                    }
                }");

            // act
            QueryValidationResult result = Rule.Validate(schema, query);

            // assert
            Assert.False(result.HasErrors);
        }