append_test.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package multierror
  2. import (
  3. "errors"
  4. "testing"
  5. )
  6. func TestAppend_Error(t *testing.T) {
  7. original := &Error{
  8. Errors: []error{errors.New("foo")},
  9. }
  10. result := Append(original, errors.New("bar"))
  11. if len(result.Errors) != 2 {
  12. t.Fatalf("wrong len: %d", len(result.Errors))
  13. }
  14. original = &Error{}
  15. result = Append(original, errors.New("bar"))
  16. if len(result.Errors) != 1 {
  17. t.Fatalf("wrong len: %d", len(result.Errors))
  18. }
  19. // Test when a typed nil is passed
  20. var e *Error
  21. result = Append(e, errors.New("baz"))
  22. if len(result.Errors) != 1 {
  23. t.Fatalf("wrong len: %d", len(result.Errors))
  24. }
  25. // Test flattening
  26. original = &Error{
  27. Errors: []error{errors.New("foo")},
  28. }
  29. result = Append(original, Append(nil, errors.New("foo"), errors.New("bar")))
  30. if len(result.Errors) != 3 {
  31. t.Fatalf("wrong len: %d", len(result.Errors))
  32. }
  33. }
  34. func TestAppend_NilError(t *testing.T) {
  35. var err error
  36. result := Append(err, errors.New("bar"))
  37. if len(result.Errors) != 1 {
  38. t.Fatalf("wrong len: %d", len(result.Errors))
  39. }
  40. }
  41. func TestAppend_NilErrorArg(t *testing.T) {
  42. var err error
  43. var nilErr *Error
  44. result := Append(err, nilErr)
  45. if len(result.Errors) != 0 {
  46. t.Fatalf("wrong len: %d", len(result.Errors))
  47. }
  48. }
  49. func TestAppend_NilErrorIfaceArg(t *testing.T) {
  50. var err error
  51. var nilErr error
  52. result := Append(err, nilErr)
  53. if len(result.Errors) != 0 {
  54. t.Fatalf("wrong len: %d", len(result.Errors))
  55. }
  56. }
  57. func TestAppend_NonError(t *testing.T) {
  58. original := errors.New("foo")
  59. result := Append(original, errors.New("bar"))
  60. if len(result.Errors) != 2 {
  61. t.Fatalf("wrong len: %d", len(result.Errors))
  62. }
  63. }
  64. func TestAppend_NonError_Error(t *testing.T) {
  65. original := errors.New("foo")
  66. result := Append(original, Append(nil, errors.New("bar")))
  67. if len(result.Errors) != 2 {
  68. t.Fatalf("wrong len: %d", len(result.Errors))
  69. }
  70. }