| package multierror |
| |
| import ( |
| "errors" |
| "testing" |
| ) |
| |
| func TestAppend_Error(t *testing.T) { |
| original := &Error{ |
| Errors: []error{errors.New("foo")}, |
| } |
| |
| result := Append(original, errors.New("bar")) |
| if len(result.Errors) != 2 { |
| t.Fatalf("wrong len: %d", len(result.Errors)) |
| } |
| |
| original = &Error{} |
| result = Append(original, errors.New("bar")) |
| if len(result.Errors) != 1 { |
| t.Fatalf("wrong len: %d", len(result.Errors)) |
| } |
| |
| // Test when a typed nil is passed |
| var e *Error |
| result = Append(e, errors.New("baz")) |
| if len(result.Errors) != 1 { |
| t.Fatalf("wrong len: %d", len(result.Errors)) |
| } |
| |
| // Test flattening |
| original = &Error{ |
| Errors: []error{errors.New("foo")}, |
| } |
| |
| result = Append(original, Append(nil, errors.New("foo"), errors.New("bar"))) |
| if len(result.Errors) != 3 { |
| t.Fatalf("wrong len: %d", len(result.Errors)) |
| } |
| } |
| |
| func TestAppend_NilError(t *testing.T) { |
| var err error |
| result := Append(err, errors.New("bar")) |
| if len(result.Errors) != 1 { |
| t.Fatalf("wrong len: %d", len(result.Errors)) |
| } |
| } |
| |
| func TestAppend_NilErrorArg(t *testing.T) { |
| var err error |
| var nilErr *Error |
| result := Append(err, nilErr) |
| if len(result.Errors) != 0 { |
| t.Fatalf("wrong len: %d", len(result.Errors)) |
| } |
| } |
| |
| func TestAppend_NilErrorIfaceArg(t *testing.T) { |
| var err error |
| var nilErr error |
| result := Append(err, nilErr) |
| if len(result.Errors) != 0 { |
| t.Fatalf("wrong len: %d", len(result.Errors)) |
| } |
| } |
| |
| func TestAppend_NonError(t *testing.T) { |
| original := errors.New("foo") |
| result := Append(original, errors.New("bar")) |
| if len(result.Errors) != 2 { |
| t.Fatalf("wrong len: %d", len(result.Errors)) |
| } |
| } |
| |
| func TestAppend_NonError_Error(t *testing.T) { |
| original := errors.New("foo") |
| result := Append(original, Append(nil, errors.New("bar"))) |
| if len(result.Errors) != 2 { |
| t.Fatalf("wrong len: %d", len(result.Errors)) |
| } |
| } |