| package multierror |
| |
| import ( |
| "errors" |
| "reflect" |
| "testing" |
| ) |
| |
| func TestError_Impl(t *testing.T) { |
| var _ error = new(Error) |
| } |
| |
| func TestErrorError_custom(t *testing.T) { |
| errors := []error{ |
| errors.New("foo"), |
| errors.New("bar"), |
| } |
| |
| fn := func(es []error) string { |
| return "foo" |
| } |
| |
| multi := &Error{Errors: errors, ErrorFormat: fn} |
| if multi.Error() != "foo" { |
| t.Fatalf("bad: %s", multi.Error()) |
| } |
| } |
| |
| func TestErrorError_default(t *testing.T) { |
| expected := `2 errors occurred: |
| * foo |
| * bar |
| |
| ` |
| |
| errors := []error{ |
| errors.New("foo"), |
| errors.New("bar"), |
| } |
| |
| multi := &Error{Errors: errors} |
| if multi.Error() != expected { |
| t.Fatalf("bad: %s", multi.Error()) |
| } |
| } |
| |
| func TestErrorErrorOrNil(t *testing.T) { |
| err := new(Error) |
| if err.ErrorOrNil() != nil { |
| t.Fatalf("bad: %#v", err.ErrorOrNil()) |
| } |
| |
| err.Errors = []error{errors.New("foo")} |
| if v := err.ErrorOrNil(); v == nil { |
| t.Fatal("should not be nil") |
| } else if !reflect.DeepEqual(v, err) { |
| t.Fatalf("bad: %#v", v) |
| } |
| } |
| |
| func TestErrorWrappedErrors(t *testing.T) { |
| errors := []error{ |
| errors.New("foo"), |
| errors.New("bar"), |
| } |
| |
| multi := &Error{Errors: errors} |
| if !reflect.DeepEqual(multi.Errors, multi.WrappedErrors()) { |
| t.Fatalf("bad: %s", multi.WrappedErrors()) |
| } |
| } |