github.com/diamondburned/arikawa/v2@v2.1.0/bot/extras/arguments/flag_test.go (about) 1 package arguments 2 3 import ( 4 "reflect" 5 "strings" 6 "testing" 7 ) 8 9 func TestFlagSet(t *testing.T) { 10 fs := NewFlagSet() 11 12 var b bool 13 fs.BoolVar(&b, "b", false, "Test boolean") 14 15 if usage := fs.Usage(); !strings.Contains(usage, "Test boolean") { 16 t.Fatal("Unexpected usage:", usage) 17 } 18 19 if err := fs.Parse([]string{"-b", "asdasd"}); err != nil { 20 t.Fatal("Failed to parse:", err) 21 } 22 23 if !b { 24 t.Fatal("Test boolean is false") 25 } 26 } 27 28 func TestFlag(t *testing.T) { 29 f := Flag{} 30 31 if err := f.ParseContent([]string{"--now", "1m4s"}); err != nil { 32 t.Fatal("Failed to parse:", err) 33 } 34 35 if args := f.Args(); !reflect.DeepEqual(args, []string{"--now", "1m4s"}) { 36 t.Fatal("Unexpected arguments:", args) 37 } 38 39 fs := NewFlagSet() 40 41 var now bool 42 fs.BoolVar(&now, "now", false, "Now") 43 44 if err := f.With(fs.FlagSet); err != nil { 45 t.Fatal("Failed to parse:", err) 46 } 47 48 if !now { 49 t.Fatal("now is false") 50 } 51 52 if arg := fs.FlagSet.Arg(0); arg != "1m4s" { 53 t.Fatal("Unexpected argument:", arg) 54 } 55 }