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); }
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); }
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(); }