protected internal DirectiveTypeDescriptor( IDescriptorContext context, DirectiveTypeDefinition definition) : base(context, definition) { Definition = definition; }
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 InferName() { // arrange // act var descriptor = DirectiveTypeDescriptor.New <CustomDirective>(Context); // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); 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 OverrideName() { // arrange var descriptor = DirectiveTypeDescriptor.New <CustomDirective>(Context); // act descriptor.Name("Foo"); // assert DirectiveTypeDefinition description = descriptor.CreateDefinition(); Assert.Equal("Foo", description.Name); }
private static void HandleDirectiveType( ITypeCompletionContext completionContext, DirectiveTypeDefinition definition, ISpatialConvention convention) { foreach (var arg in definition.Arguments) { if (completionContext.IsNamedType <IGeoJsonInputType>(arg.Type)) { arg.Formatters.Add( new GeometryTransformerInputFormatter( convention.TransformerFactory, convention.DefaultSrid)); } } }
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 static void CollectDependencies( DirectiveTypeDefinition definition, ICollection <TypeDependency> dependencies) { if (definition.HasArguments) { foreach (DirectiveArgumentDefinition argument in definition.Arguments) { if (argument.Type is not null) { dependencies.Add(new( argument.Type, GetDefaultValueDependencyKind(argument))); } } } }
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)); }