public void WithFields()
        {
            /* Given */
            InterfaceDefinition original = @"interface Inf";

            /* When */
            var modified = original
                           .WithFields(new List <FieldDefinition>
            {
                "field: String!"
            });

            /* Then */
            Assert.Null(original.Fields);
            Assert.NotNull(modified.Fields);
            Assert.NotEmpty(modified.Fields);
        }
        public void WithFields_Modify()
        {
            /* Given */
            InterfaceDefinition original = @"interface Inf { field: String }";

            /* When */
            var modified = original
                           .WithFields(original
                                       .Fields?
                                       .Select(originalField => originalField
                                               .WithDescription("Description"))
                                       .ToList()
                                       );

            /* Then */
            Assert.NotNull(modified.Fields);
            var field = Assert.Single(modified.Fields);

            Assert.Equal("Description", field?.Description);
        }