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  }