kubeedge/cloud/pkg/controllermanager/nodegroup/nodegroupcontroller_test.go
Congrool 60e540a473
controller manager fix
Signed-off-by: Congrool <chpzhangyifei@qq.com>
Signed-off-by: Congrool <chpzhangyifei@zju.edu.cn>
2022-05-19 17:08:58 +08:00

126 lines
2 KiB
Go

package nodegroup
import (
"sort"
"testing"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/equality"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func TestNodesUnion(t *testing.T) {
cases := map[string]struct {
list1 []corev1.Node
list2 []corev1.Node
want []corev1.Node
}{
"nil-nil": {
list1: nil,
list2: nil,
want: []corev1.Node{},
},
"nil-empty": {
list1: nil,
list2: []corev1.Node{},
want: []corev1.Node{},
},
"nil-normal": {
list1: nil,
list2: []corev1.Node{
{
ObjectMeta: v1.ObjectMeta{
Name: "node1",
},
},
},
want: []corev1.Node{
{
ObjectMeta: v1.ObjectMeta{
Name: "node1",
},
},
},
},
"normal-normal-different": {
list1: []corev1.Node{
{
ObjectMeta: v1.ObjectMeta{
Name: "node1",
},
},
},
list2: []corev1.Node{
{
ObjectMeta: v1.ObjectMeta{
Name: "node2",
},
},
},
want: []corev1.Node{
{
ObjectMeta: v1.ObjectMeta{
Name: "node1",
},
},
{
ObjectMeta: v1.ObjectMeta{
Name: "node2",
},
},
},
},
"normal-normal-intersection": {
list1: []corev1.Node{
{
ObjectMeta: v1.ObjectMeta{
Name: "node1",
},
},
{
ObjectMeta: v1.ObjectMeta{
Name: "node2",
},
},
},
list2: []corev1.Node{
{
ObjectMeta: v1.ObjectMeta{
Name: "node2",
},
},
{
ObjectMeta: v1.ObjectMeta{
Name: "node3",
},
},
},
want: []corev1.Node{
{
ObjectMeta: v1.ObjectMeta{
Name: "node1",
},
},
{
ObjectMeta: v1.ObjectMeta{
Name: "node2",
},
},
{
ObjectMeta: v1.ObjectMeta{
Name: "node3",
},
},
},
},
}
for n, c := range cases {
results := nodesUnion(c.list1, c.list2)
sort.Slice(results, func(i, j int) bool {
return results[i].Name < results[j].Name
})
if !equality.Semantic.DeepEqual(results, c.want) {
t.Errorf("failed at case: %s, want: %v, got: %v", n, c.want, results)
}
}
}