Merge pull request #2355 from AllenZMC/improve_binding
add ut for binding
This commit is contained in:
commit
2197159032
|
@ -1,8 +1,11 @@
|
|||
package helper
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
|
||||
workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
|
||||
)
|
||||
|
||||
|
@ -73,3 +76,107 @@ func TestHasScheduledReplica(t *testing.T) {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestObtainBindingSpecExistingClusters(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
bindingSpec workv1alpha2.ResourceBindingSpec
|
||||
want sets.String
|
||||
}{
|
||||
{
|
||||
name: "unique cluster name without GracefulEvictionTasks field",
|
||||
bindingSpec: workv1alpha2.ResourceBindingSpec{
|
||||
Clusters: []workv1alpha2.TargetCluster{
|
||||
{
|
||||
Name: "member1",
|
||||
Replicas: 2,
|
||||
},
|
||||
{
|
||||
Name: "member2",
|
||||
Replicas: 3,
|
||||
},
|
||||
},
|
||||
RequiredBy: []workv1alpha2.BindingSnapshot{
|
||||
{
|
||||
Clusters: []workv1alpha2.TargetCluster{
|
||||
{
|
||||
Name: "member3",
|
||||
Replicas: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
want: sets.NewString("member1", "member2", "member3"),
|
||||
},
|
||||
{
|
||||
name: "all spec fields do not contain duplicate cluster names",
|
||||
bindingSpec: workv1alpha2.ResourceBindingSpec{
|
||||
Clusters: []workv1alpha2.TargetCluster{
|
||||
{
|
||||
Name: "member1",
|
||||
Replicas: 2,
|
||||
},
|
||||
{
|
||||
Name: "member2",
|
||||
Replicas: 3,
|
||||
},
|
||||
},
|
||||
RequiredBy: []workv1alpha2.BindingSnapshot{
|
||||
{
|
||||
Clusters: []workv1alpha2.TargetCluster{
|
||||
{
|
||||
Name: "member3",
|
||||
Replicas: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{
|
||||
{
|
||||
FromCluster: "member4",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: sets.NewString("member1", "member2", "member3", "member4"),
|
||||
},
|
||||
{
|
||||
name: "duplicate cluster name",
|
||||
bindingSpec: workv1alpha2.ResourceBindingSpec{
|
||||
Clusters: []workv1alpha2.TargetCluster{
|
||||
{
|
||||
Name: "member1",
|
||||
Replicas: 2,
|
||||
},
|
||||
{
|
||||
Name: "member2",
|
||||
Replicas: 3,
|
||||
},
|
||||
},
|
||||
RequiredBy: []workv1alpha2.BindingSnapshot{
|
||||
{
|
||||
Clusters: []workv1alpha2.TargetCluster{
|
||||
{
|
||||
Name: "member3",
|
||||
Replicas: 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
GracefulEvictionTasks: []workv1alpha2.GracefulEvictionTask{
|
||||
{
|
||||
FromCluster: "member3",
|
||||
},
|
||||
},
|
||||
},
|
||||
want: sets.NewString("member1", "member2", "member3"),
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if got := ObtainBindingSpecExistingClusters(tt.bindingSpec); !reflect.DeepEqual(got, tt.want) {
|
||||
t.Errorf("ObtainBindingSpecExistingClusters() = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue