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)); }