1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package pflag
- import (
- "bytes"
- "io"
- "testing"
- )
- const expectedOutput = ` --long-form Some description
- --long-form2 Some description
- with multiline
- -s, --long-name Some description
- -t, --long-name2 Some description with
- multiline
- `
- func setUpPFlagSet(buf io.Writer) *FlagSet {
- f := NewFlagSet("test", ExitOnError)
- f.Bool("long-form", false, "Some description")
- f.Bool("long-form2", false, "Some description\n with multiline")
- f.BoolP("long-name", "s", false, "Some description")
- f.BoolP("long-name2", "t", false, "Some description with\n multiline")
- f.SetOutput(buf)
- return f
- }
- func TestPrintUsage(t *testing.T) {
- buf := bytes.Buffer{}
- f := setUpPFlagSet(&buf)
- f.PrintDefaults()
- res := buf.String()
- if res != expectedOutput {
- t.Errorf("Expected \n%s \nActual \n%s", expectedOutput, res)
- }
- }
- func setUpPFlagSet2(buf io.Writer) *FlagSet {
- f := NewFlagSet("test", ExitOnError)
- f.Bool("long-form", false, "Some description")
- f.Bool("long-form2", false, "Some description\n with multiline")
- f.BoolP("long-name", "s", false, "Some description")
- f.BoolP("long-name2", "t", false, "Some description with\n multiline")
- f.StringP("some-very-long-arg", "l", "test", "Some very long description having break the limit")
- f.StringP("other-very-long-arg", "o", "long-default-value", "Some very long description having break the limit")
- f.String("some-very-long-arg2", "very long default value", "Some very long description\nwith line break\nmultiple")
- f.SetOutput(buf)
- return f
- }
- const expectedOutput2 = ` --long-form Some description
- --long-form2 Some description
- with multiline
- -s, --long-name Some description
- -t, --long-name2 Some description with
- multiline
- -o, --other-very-long-arg string Some very long description having
- break the limit (default
- "long-default-value")
- -l, --some-very-long-arg string Some very long description having
- break the limit (default "test")
- --some-very-long-arg2 string Some very long description
- with line break
- multiple (default "very long default
- value")
- `
- func TestPrintUsage_2(t *testing.T) {
- buf := bytes.Buffer{}
- f := setUpPFlagSet2(&buf)
- res := f.FlagUsagesWrapped(80)
- if res != expectedOutput2 {
- t.Errorf("Expected \n%q \nActual \n%q", expectedOutput2, res)
- }
- }
|