karmada/pkg/util/error_test.go

46 lines
867 B
Go

package util
import (
"fmt"
"reflect"
"testing"
utilerrors "k8s.io/apimachinery/pkg/util/errors"
)
func TestAggregateErrors(t *testing.T) {
err1 := fmt.Errorf("error1")
err2 := fmt.Errorf("error2")
channel := make(chan error, 2)
channel <- err1
channel <- err2
tests := []struct {
name string
input <-chan error
expected error
}{
{
name: "nil channel",
input: nil,
expected: nil,
},
{
name: "channel has no error",
input: make(chan error, 1),
expected: nil,
},
{
name: "channel has 2 errors",
input: channel,
expected: utilerrors.NewAggregate([]error{err1, err2}),
},
}
for _, test := range tests {
if got := AggregateErrors(test.input); !reflect.DeepEqual(got, test.expected) {
t.Errorf("Test %s failed: expected %v, but got %v", test.name, test.expected, got)
}
}
}