protected internal DirectiveTypeDescriptor(
     IDescriptorContext context,
     DirectiveTypeDefinition definition)
     : base(context, definition)
 {
     Definition = definition;
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        public void InferName()
        {
            // arrange
            // act
            var descriptor =
                DirectiveTypeDescriptor.New <CustomDirective>(Context);

            // assert
            DirectiveTypeDefinition description =
                descriptor.CreateDefinition();

            Assert.Equal("CustomDirective", description.Name);
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        public void OverrideName()
        {
            // arrange
            var descriptor =
                DirectiveTypeDescriptor.New <CustomDirective>(Context);

            // act
            descriptor.Name("Foo");

            // assert
            DirectiveTypeDefinition description =
                descriptor.CreateDefinition();

            Assert.Equal("Foo", description.Name);
        }
Beispiel #6
0
 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));
         }
     }
 }
Beispiel #7
0
        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));
        }
Beispiel #8
0
        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)));
             }
         }
     }
 }
Beispiel #10
0
        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));
        }
Beispiel #11
0
        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));
        }