long_test.go 1.7 KB

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