protected override DirectiveTypeDefinition CreateDefinition( IInitializationContext context) { var descriptor = DirectiveTypeDescriptor.New <TDirective>( context.DescriptorContext); _conf(descriptor); return(descriptor.CreateDefinition()); }
public void DeclareName() { // arrange // act var descriptor = DirectiveTypeDescriptor.New(Context, "Foo"); // assert Assert.Equal("Foo", descriptor.CreateDefinition().Name); }
protected override DirectiveTypeDefinition CreateDefinition( ITypeDiscoveryContext context) { var descriptor = DirectiveTypeDescriptor.New <TDirective>(context.DescriptorContext); _configure !(descriptor); _configure = null; return(descriptor.CreateDefinition()); }
protected override DirectiveTypeDefinition CreateDefinition( IInitializationContext context) { var descriptor = DirectiveTypeDescriptor.New( DescriptorContext.Create(context.Services), GetType()); _configure(descriptor); return(descriptor.CreateDefinition()); }
protected override DirectiveTypeDefinition CreateDefinition( IInitializationContext context) { var descriptor = DirectiveTypeDescriptor.FromSchemaType( context.DescriptorContext, GetType()); _configure(descriptor); return(descriptor.CreateDefinition()); }
public void DeclareDescription() { // arrange var descriptor = DirectiveTypeDescriptor.New(Context); // act descriptor.Description("Desc"); // assert Assert.Equal("Desc", descriptor.CreateDefinition().Description); }
public void CreateDescriptionWithEmptyName() { // arrange var descriptor = new DirectiveTypeDescriptor(); // act Action a = () => descriptor.CreateDescription(); // assert Assert.Throws <InvalidOperationException>(a); }
public void DeclareEmptyName() { // arrange var descriptor = DirectiveTypeDescriptor.New(Context); // act Action a = () => descriptor.Name(string.Empty); // assert Assert.Throws <ArgumentException>(a); }
public void DeclareNullName() { // arrange var descriptor = DirectiveTypeDescriptor.New(Context, "Foo"); // act Action a = () => descriptor.Name(null); // assert Assert.Throws <ArgumentException>(a); }
public void MethodsAreNotAllowedAsArguments() { // arrange var descriptor = DirectiveTypeDescriptor.New <CustomDirective>(Context); // act Action action = () => descriptor.Argument(t => t.Foo()).Ignore(); // assert Assert.Throws <ArgumentException>(action); }
public void MethodsAreNotAllowedAsArguments() { // arrange var descriptor = new DirectiveTypeDescriptor <CustomDirective>(); // act IDirectiveTypeDescriptor <CustomDirective> desc = descriptor; Action action = () => desc.Argument(t => t.Foo()).Ignore(); // assert Assert.Throws <ArgumentException>(action); }
public void DeclareEmptyName() { // arrange var descriptor = new DirectiveTypeDescriptor(); // act IDirectiveTypeDescriptor desc = descriptor; Action a = () => desc.Name(string.Empty); // assert Assert.Throws <ArgumentException>(a); }
public void InferName() { // arrange // act var descriptor = DirectiveTypeDescriptor.New <CustomDirective>(Context); // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); Assert.Equal("CustomDirective", description.Name); }
public void DeclareArgument() { // arrange var descriptor = DirectiveTypeDescriptor.New(Context); // act descriptor.Argument("arg").Type <BooleanType>();; // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); Assert.Equal("arg", description.Arguments.Single().Name); }
public void DeclareName() { // arrange var descriptor = new DirectiveTypeDescriptor(); // act IDirectiveTypeDescriptor desc = descriptor; desc.Name("Foo"); // assert Assert.Equal("Foo", descriptor.CreateDescription().Name); }
public void InferName() { // arrange var descriptor = new DirectiveTypeDescriptor <CustomDirective>(); // act IDirectiveTypeDescriptor desc = descriptor; // assert DirectiveTypeDescription description = descriptor.CreateDescription(); Assert.Equal("CustomDirective", description.Name); }
public void DeclareArgumentWithProperty() { // arrange // act var descriptor = DirectiveTypeDescriptor.New <CustomDirective>(Context); // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); Assert.Collection(description.Arguments, t => Assert.Equal("fieldA", t.Name), t => Assert.Equal("fieldB", t.Name)); }
public void Ignore_ExpressionIsNull_ArgumentNullException() { // arrange DirectiveTypeDescriptor <CustomDirective2> descriptor = DirectiveTypeDescriptor.New <CustomDirective2>( DescriptorContext.Create()); // act Action action = () => DirectiveTypeDescriptorExtensions .Ignore(descriptor, null); // assert Assert.Throws <ArgumentNullException>(action); }
public void OverrideName() { // arrange var descriptor = DirectiveTypeDescriptor.New <CustomDirective>(Context); // act descriptor.Name("Foo"); // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); Assert.Equal("Foo", description.Name); }
public void OverrideName() { // arrange var descriptor = new DirectiveTypeDescriptor <CustomDirective>(); // act IDirectiveTypeDescriptor desc = descriptor; desc.Name("Foo"); // assert DirectiveTypeDescription description = descriptor.CreateDescription(); Assert.Equal("Foo", description.Name); }
public void DeclareArgumentWithProperty() { // arrange var descriptor = new DirectiveTypeDescriptor <CustomDirective>(); // act IDirectiveTypeDescriptor <CustomDirective> desc = descriptor; // assert DirectiveTypeDescription description = descriptor.CreateDescription(); Assert.Collection(description.Arguments, t => Assert.Equal("fieldA", t.Name), t => Assert.Equal("fieldB", t.Name)); }
public void IgnoreArgumentBinding() { // arrange var descriptor = DirectiveTypeDescriptor.New <CustomDirective>(Context); // act descriptor.Argument(t => t.FieldA).Ignore(); // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); Assert.Collection(description.Arguments, t => Assert.Equal("fieldB", t.Name)); }
public void DeclareExplicitArgumentBinding() { // arrange var descriptor = DirectiveTypeDescriptor.New <CustomDirective>(Context); // act descriptor.BindArguments(BindingBehavior.Explicit); descriptor.Argument(t => t.FieldA); // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); Assert.Collection(description.Arguments, t => Assert.Equal("fieldA", t.Name)); }
public void IgnoreArgumentBinding() { // arrange var descriptor = new DirectiveTypeDescriptor <CustomDirective>(); // act IDirectiveTypeDescriptor <CustomDirective> desc = descriptor; desc.Argument(t => t.FieldA).Ignore(); // assert DirectiveTypeDescription description = descriptor.CreateDescription(); Assert.Collection(description.Arguments, t => Assert.Equal("fieldB", t.Name)); }
public void DeclareArgument() { // arrange var descriptor = new DirectiveTypeDescriptor(); // act IDirectiveTypeDescriptor desc = descriptor; desc.Name("Foo"); desc.Argument("arg").Type <BooleanType>();; // assert DirectiveTypeDescription description = descriptor.CreateDescription(); Assert.Equal("arg", description.Arguments.Single().Name); }
public void DeclareLocation() { // arrange var descriptor = DirectiveTypeDescriptor.New(Context); // act descriptor.Location(DirectiveLocation.Enum); descriptor.Location(DirectiveLocation.Enum); descriptor.Location(DirectiveLocation.EnumValue); // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); Assert.Collection(description.Locations, t => Assert.Equal(DirectiveLocation.Enum, t), t => Assert.Equal(DirectiveLocation.EnumValue, t)); }
public void DeclareArgumentAndSpecifyClrType() { // arrange var descriptor = DirectiveTypeDescriptor.New <CustomDirective>(Context); // act descriptor.Argument(t => t.FieldA).Type(typeof(NonNullType <StringType>)); // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); Assert.Collection(description.Arguments, t => Assert.Equal( typeof(NonNullType <StringType>), Assert.IsType <ExtendedTypeReference>(t.Type).Type.Source), t => Assert.Equal( typeof(string), Assert.IsType <ExtendedTypeReference>(t.Type).Type.Source)); }
public void DeclareLocation() { // arrange var descriptor = new DirectiveTypeDescriptor(); // act IDirectiveTypeDescriptor desc = descriptor; desc.Name("Foo"); desc.Location(DirectiveLocation.Enum); desc.Location(DirectiveLocation.Enum); desc.Location(DirectiveLocation.EnumValue); // assert DirectiveTypeDescription description = descriptor.CreateDescription(); Assert.Collection(description.Locations, t => Assert.Equal(DirectiveLocation.Enum, t), t => Assert.Equal(DirectiveLocation.EnumValue, t)); }
public void DeclareArgumentAndSpecifyType() { // arrange var descriptor = new DirectiveTypeDescriptor <CustomDirective>(); // act IDirectiveTypeDescriptor <CustomDirective> desc = descriptor; desc.Argument(t => t.FieldA).Type <NonNullType <StringType> >(); // assert DirectiveTypeDescription description = descriptor.CreateDescription(); Assert.Collection(description.Arguments, t => Assert.Equal( typeof(NonNullType <StringType>), t.TypeReference.ClrType), t => Assert.Equal( typeof(string), t.TypeReference.ClrType)); }
private void Initialize(Action <IDirectiveTypeDescriptor> configure) { if (configure == null) { throw new ArgumentNullException(nameof(configure)); } DirectiveTypeDescriptor descriptor = CreateDescriptor(); configure(descriptor); DirectiveTypeDescription description = descriptor.CreateDescription(); ClrType = description.ClrType; SyntaxNode = description.SyntaxNode; Name = description.Name; Description = description.Description; Locations = description.Locations.ToList().AsReadOnly(); Arguments = new FieldCollection <InputField>( description.Arguments.Select(t => new InputField(t))); _middleware = description.Middleware; }