1package flags 2 3import ( 4 "testing" 5) 6 7func TestLong(t *testing.T) { 8 var opts = struct { 9 Value bool `long:"value"` 10 }{} 11 12 ret := assertParseSuccess(t, &opts, "--value") 13 14 assertStringArray(t, ret, []string{}) 15 16 if !opts.Value { 17 t.Errorf("Expected Value to be true") 18 } 19} 20 21func TestLongArg(t *testing.T) { 22 var opts = struct { 23 Value string `long:"value"` 24 }{} 25 26 ret := assertParseSuccess(t, &opts, "--value", "value") 27 28 assertStringArray(t, ret, []string{}) 29 assertString(t, opts.Value, "value") 30} 31 32func TestLongArgEqual(t *testing.T) { 33 var opts = struct { 34 Value string `long:"value"` 35 }{} 36 37 ret := assertParseSuccess(t, &opts, "--value=value") 38 39 assertStringArray(t, ret, []string{}) 40 assertString(t, opts.Value, "value") 41} 42 43func TestLongDefault(t *testing.T) { 44 var opts = struct { 45 Value string `long:"value" default:"value"` 46 }{} 47 48 ret := assertParseSuccess(t, &opts) 49 50 assertStringArray(t, ret, []string{}) 51 assertString(t, opts.Value, "value") 52} 53 54func TestLongOptional(t *testing.T) { 55 var opts = struct { 56 Value string `long:"value" optional:"yes" optional-value:"value"` 57 }{} 58 59 ret := assertParseSuccess(t, &opts, "--value") 60 61 assertStringArray(t, ret, []string{}) 62 assertString(t, opts.Value, "value") 63} 64 65func TestLongOptionalArg(t *testing.T) { 66 var opts = struct { 67 Value string `long:"value" optional:"yes" optional-value:"value"` 68 }{} 69 70 ret := assertParseSuccess(t, &opts, "--value", "no") 71 72 assertStringArray(t, ret, []string{"no"}) 73 assertString(t, opts.Value, "value") 74} 75 76func TestLongOptionalArgEqual(t *testing.T) { 77 var opts = struct { 78 Value string `long:"value" optional:"yes" optional-value:"value"` 79 }{} 80 81 ret := assertParseSuccess(t, &opts, "--value=value", "no") 82 83 assertStringArray(t, ret, []string{"no"}) 84 assertString(t, opts.Value, "value") 85} 86