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 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);
        }
示例#4
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));
        }
示例#5
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));
        }
示例#6
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));
        }
示例#7
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));
        }