83 lines
1.8 KiB
Go
83 lines
1.8 KiB
Go
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))
|
|
}
|
|
}
|