46 lines
867 B
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)
|
|
}
|
|
}
|
|
}
|