Beispiel #1
0
        private void Initialize(Action <IObjectTypeDescriptor> configure)
        {
            if (configure == null)
            {
                throw new ArgumentNullException(nameof(configure));
            }

            ObjectTypeDescriptor descriptor = CreateDescriptor();

            configure(descriptor);

            ObjectTypeDescription description = descriptor.CreateDescription();

            InitializeFields(description);

            _isOfType   = description.IsOfType;
            _interfaces = description.Interfaces;

            SyntaxNode = description.SyntaxNode;

            Initialize(description.Name, description.Description,
                       new DirectiveCollection(
                           this,
                           DirectiveLocation.Object,
                           description.Directives));
        }
        public void GetNameFromAttribute()
        {
            // arrange
            var descriptor = new ObjectTypeDescriptor <Foo2>();

            // act
            IObjectTypeDescriptor <Foo2> desc = descriptor;

            // assert
            Assert.Equal("FooAttr", descriptor.CreateDescription().Name);
        }
        public void InferNameFromType()
        {
            // arrange
            var descriptor = new ObjectTypeDescriptor <Foo>();

            // act
            IObjectTypeDescriptor <Foo> desc = descriptor;

            // assert
            Assert.Equal("Foo", descriptor.CreateDescription().Name);
        }
        public void OverwriteAttributeName()
        {
            // arrange
            var descriptor = new ObjectTypeDescriptor <Foo2>();

            // act
            IObjectTypeDescriptor <Foo2> desc = descriptor;

            desc.Name("FooBar");

            // assert
            Assert.Equal("FooBar", descriptor.CreateDescription().Name);
        }
        public void InferFieldsFromType()
        {
            // arrange
            var descriptor = new ObjectTypeDescriptor <Foo>();

            // act
            IObjectTypeDescriptor <Foo> desc = descriptor;

            // assert
            Assert.Collection(
                descriptor.CreateDescription().Fields.Select(t => t.Name),
                t => Assert.Equal("a", t),
                t => Assert.Equal("b", t),
                t => Assert.Equal("c", t),
                t => Assert.Equal("equals", t));
        }
        public void IgnoreFields()
        {
            // arrange
            var descriptor = new ObjectTypeDescriptor <Foo>();

            // act
            IObjectTypeDescriptor <Foo> desc = descriptor;

            desc.Field(t => t.A);
            desc.Field(t => t.B).Ignore();

            // assert
            Assert.Collection(
                descriptor.CreateDescription().Fields.Select(t => t.Name),
                t => Assert.Equal("a", t),
                t => Assert.Equal("c", t));
        }
        public void IgnoreOverridenPropertyField()
        {
            // arrange
            var descriptor = new ObjectTypeDescriptor <Foo>();

            // act
            IObjectTypeDescriptor <Foo> desc = descriptor;

            desc.Field(t => t.B).Ignore();

            // assert
            Assert.Collection(
                descriptor.CreateDescription().Fields
                .Select(t => t.Name)
                .OrderBy(t => t),
                t => Assert.Equal("a", t),
                t => Assert.Equal("c", t),
                t => Assert.Equal("equals", t),
                t => Assert.Equal("hashCode", t));
        }