Example #1
0
        private void ExpectValid(ISchema schema, IDocumentValidator validator, string sourceText)
        {
            // arrange
            schema ??= ValidationUtils.CreateSchema();
            validator ??= CreateValidator();
            DocumentNode query = Utf8GraphQLParser.Parse(sourceText);

            // act
            DocumentValidatorResult result = validator.Validate(schema, query);

            // assert
            Assert.Empty(result.Errors);
        }
Example #2
0
        public void DuplicatesWillBeIgnoredOnFieldMerging()
        {
            // arrange
            ISchema schema = SchemaBuilder.New()
                             .AddStarWarsTypes()
                             .Create();

            DocumentNode document = Utf8GraphQLParser.Parse(
                FileResource.Open("InvalidIntrospectionQuery.graphql"));

            var originalOperation = ((OperationDefinitionNode)document.Definitions[0]);
            OperationDefinitionNode operationWithDuplicates = originalOperation.WithSelectionSet(
                originalOperation.SelectionSet.WithSelections(
                    new List <ISelectionNode>
            {
                originalOperation.SelectionSet.Selections[0],
                originalOperation.SelectionSet.Selections[0]
            }));

            document = document.WithDefinitions(
                new List <IDefinitionNode>(document.Definitions.Skip(1))
            {
                operationWithDuplicates
            });

            ServiceProvider services = new ServiceCollection()
                                       .AddValidation()
                                       .Services
                                       .BuildServiceProvider();

            IDocumentValidatorFactory factory   = services.GetRequiredService <IDocumentValidatorFactory>();
            IDocumentValidator        validator = factory.CreateValidator();

            // act
            DocumentValidatorResult result = validator.Validate(schema, document);

            // assert
            Assert.False(result.HasErrors);
        }
Example #3
0
        private void ExpectErrors(
            ISchema schema,
            IDocumentValidator validator,
            string sourceText,
            params Action <IError>[] elementInspectors)
        {
            // arrange
            schema ??= ValidationUtils.CreateSchema();
            validator ??= CreateValidator();
            DocumentNode query = Utf8GraphQLParser.Parse(sourceText);

            // act
            DocumentValidatorResult result = validator.Validate(schema, query);

            // assert
            Assert.NotEmpty(result.Errors);

            if (elementInspectors.Length > 0)
            {
                Assert.Collection(result.Errors, elementInspectors);
            }

            result.Errors.MatchSnapshot();
        }