mirror of
https://github.com/vee1e/kubeedge.git
synced 2026-09-03 19:27:35 +00:00
Signed-off-by: Congrool <chpzhangyifei@qq.com> Signed-off-by: Congrool <chpzhangyifei@zju.edu.cn>
126 lines
2 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|