57 lines
1.1 KiB
Go
57 lines
1.1 KiB
Go
package packer
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
)
|
|
|
|
func TestMultiError_Impl(t *testing.T) {
|
|
var raw interface{}
|
|
raw = &MultiError{}
|
|
if _, ok := raw.(error); !ok {
|
|
t.Fatal("MultiError must implement error")
|
|
}
|
|
}
|
|
|
|
func TestMultiErrorError(t *testing.T) {
|
|
expected := `2 error(s) occurred:
|
|
|
|
* foo
|
|
* bar`
|
|
|
|
errors := []error{
|
|
errors.New("foo"),
|
|
errors.New("bar"),
|
|
}
|
|
|
|
multi := &MultiError{errors}
|
|
if multi.Error() != expected {
|
|
t.Fatalf("bad: %s", multi.Error())
|
|
}
|
|
}
|
|
|
|
func TestMultiErrorAppend_MultiError(t *testing.T) {
|
|
original := &MultiError{
|
|
Errors: []error{errors.New("foo")},
|
|
}
|
|
|
|
result := MultiErrorAppend(original, errors.New("bar"))
|
|
if len(result.Errors) != 2 {
|
|
t.Fatalf("wrong len: %d", len(result.Errors))
|
|
}
|
|
|
|
original = &MultiError{}
|
|
result = MultiErrorAppend(original, errors.New("bar"))
|
|
if len(result.Errors) != 1 {
|
|
t.Fatalf("wrong len: %d", len(result.Errors))
|
|
}
|
|
}
|
|
|
|
func TestMultiErrorAppend_NonMultiError(t *testing.T) {
|
|
original := errors.New("foo")
|
|
result := MultiErrorAppend(original, errors.New("bar"))
|
|
if len(result.Errors) != 2 {
|
|
t.Fatalf("wrong len: %d", len(result.Errors))
|
|
}
|
|
}
|