public void WithFields()
    {
        /* Given */
        InputObjectDefinition original = @"input Obj";

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

        /* Then */
        Assert.Null(original.Fields);
        Assert.NotNull(modified.Fields);
        Assert.NotEmpty(modified.Fields);
    }
    public void WithFields_Modify()
    {
        /* Given */
        InputObjectDefinition original = @"input Obj { 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);
    }