assert_test.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package flags
  2. import (
  3. "testing"
  4. )
  5. func assertString(t *testing.T, a string, b string) {
  6. if a != b {
  7. t.Errorf("Expected %#v, but got %#v", b, a)
  8. }
  9. }
  10. func assertStringArray(t *testing.T, a []string, b []string) {
  11. if len(a) != len(b) {
  12. t.Errorf("Expected %#v, but got %#v", b, a)
  13. return
  14. }
  15. for i, v := range a {
  16. if b[i] != v {
  17. t.Errorf("Expected %#v, but got %#v", b, a)
  18. return
  19. }
  20. }
  21. }
  22. func assertBoolArray(t *testing.T, a []bool, b []bool) {
  23. if len(a) != len(b) {
  24. t.Errorf("Expected %#v, but got %#v", b, a)
  25. return
  26. }
  27. for i, v := range a {
  28. if b[i] != v {
  29. t.Errorf("Expected %#v, but got %#v", b, a)
  30. return
  31. }
  32. }
  33. }
  34. func assertParserSuccess(t *testing.T, data interface{}, args ...string) (*Parser, []string) {
  35. parser := NewParser(data, Default&^PrintErrors)
  36. ret, err := parser.ParseArgs(args)
  37. if err != nil {
  38. t.Fatalf("Unexpected parse error: %s", err)
  39. return nil, nil
  40. }
  41. return parser, ret
  42. }
  43. func assertParseSuccess(t *testing.T, data interface{}, args ...string) []string {
  44. _, ret := assertParserSuccess(t, data, args...)
  45. return ret
  46. }
  47. func assertError(t *testing.T, err error, typ ErrorType, msg string) {
  48. if err == nil {
  49. t.Fatalf("Expected error: %s", msg)
  50. return
  51. }
  52. if e, ok := err.(*Error); !ok {
  53. t.Fatalf("Expected Error type, but got %#v", err)
  54. return
  55. } else {
  56. if e.Type != typ {
  57. t.Errorf("Expected error type {%s}, but got {%s}", typ, e.Type)
  58. }
  59. if e.Message != msg {
  60. t.Errorf("Expected error message %#v, but got %#v", msg, e.Message)
  61. }
  62. }
  63. }
  64. func assertParseFail(t *testing.T, typ ErrorType, msg string, data interface{}, args ...string) {
  65. parser := NewParser(data, Default&^PrintErrors)
  66. _, err := parser.ParseArgs(args)
  67. assertError(t, err, typ, msg)
  68. }