options_test.go 803 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package flags
  2. import (
  3. "testing"
  4. )
  5. func TestPassDoubleDash(t *testing.T) {
  6. var opts = struct {
  7. Value bool `short:"v"`
  8. }{}
  9. p := NewParser(&opts, PassDoubleDash)
  10. ret, err := p.ParseArgs([]string{"-v", "--", "-v", "-g"})
  11. if err != nil {
  12. t.Fatalf("Unexpected error: %v", err)
  13. return
  14. }
  15. if !opts.Value {
  16. t.Errorf("Expected Value to be true")
  17. }
  18. assertStringArray(t, ret, []string{"-v", "-g"})
  19. }
  20. func TestPassAfterNonOption(t *testing.T) {
  21. var opts = struct {
  22. Value bool `short:"v"`
  23. }{}
  24. p := NewParser(&opts, PassAfterNonOption)
  25. ret, err := p.ParseArgs([]string{"-v", "arg", "-v", "-g"})
  26. if err != nil {
  27. t.Fatalf("Unexpected error: %v", err)
  28. return
  29. }
  30. if !opts.Value {
  31. t.Errorf("Expected Value to be true")
  32. }
  33. assertStringArray(t, ret, []string{"arg", "-v", "-g"})
  34. }