add ut for dependencies

Signed-off-by: AllenZMC <zhongming.chang@daocloud.io>
This commit is contained in:
AllenZMC 2022-04-26 23:46:21 +08:00
parent 6de167e209
commit c7e770c51d
1 changed files with 160 additions and 0 deletions

View File

@ -0,0 +1,160 @@
package defaultinterpreter
import (
"reflect"
"testing"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/util/sets"
configv1alpha1 "github.com/karmada-io/karmada/pkg/apis/config/v1alpha1"
"github.com/karmada-io/karmada/test/helper"
)
func TestGetSecretNames(t *testing.T) {
fakePod := helper.NewPod("foo", "bar")
fakePod.Spec.Volumes = []corev1.Volume{
{
Name: "foo-name",
VolumeSource: corev1.VolumeSource{
Secret: &corev1.SecretVolumeSource{
SecretName: "fake-foo",
},
},
},
{
Name: "bar-name",
VolumeSource: corev1.VolumeSource{
Secret: &corev1.SecretVolumeSource{
SecretName: "fake-bar",
},
},
},
}
tests := []struct {
name string
pod *corev1.Pod
expected sets.String
}{
{
name: "get secret names from pod",
pod: fakePod,
expected: sets.NewString("fake-foo", "fake-bar"),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
res := getSecretNames(tt.pod)
if !reflect.DeepEqual(res, tt.expected) {
t.Errorf("getSecretNames() = %v, want %v", res, tt.expected)
}
})
}
}
func TestGetConfigMapNames(t *testing.T) {
fakePod := helper.NewPod("foo", "bar")
fakePod.Spec.Volumes = []corev1.Volume{
{
Name: "foo-name",
VolumeSource: corev1.VolumeSource{
ConfigMap: &corev1.ConfigMapVolumeSource{
LocalObjectReference: corev1.LocalObjectReference{
Name: "fake-foo",
},
},
},
},
{
Name: "bar-name",
VolumeSource: corev1.VolumeSource{
ConfigMap: &corev1.ConfigMapVolumeSource{
LocalObjectReference: corev1.LocalObjectReference{
Name: "fake-bar",
},
},
},
},
}
tests := []struct {
name string
pod *corev1.Pod
expected sets.String
}{
{
name: "get configMap names from pod",
pod: fakePod,
expected: sets.NewString("fake-foo", "fake-bar"),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
res := getConfigMapNames(tt.pod)
if !reflect.DeepEqual(res, tt.expected) {
t.Errorf("getConfigMapNames() = %v, want %v", res, tt.expected)
}
})
}
}
func TestGetDependenciesFromPodTemplate(t *testing.T) {
fakePod := helper.NewPod("foo", "bar")
fakePod.Spec.Volumes = []corev1.Volume{
{
Name: "foo-name",
VolumeSource: corev1.VolumeSource{
ConfigMap: &corev1.ConfigMapVolumeSource{
LocalObjectReference: corev1.LocalObjectReference{
Name: "fake-foo",
},
},
},
},
{
Name: "bar-name",
VolumeSource: corev1.VolumeSource{
Secret: &corev1.SecretVolumeSource{
SecretName: "fake-bar",
},
},
},
}
tests := []struct {
name string
pod *corev1.Pod
expected []configv1alpha1.DependentObjectReference
}{
{
name: "get dependencies from PodTemplate",
pod: fakePod,
expected: []configv1alpha1.DependentObjectReference{
{
APIVersion: "v1",
Kind: "ConfigMap",
Namespace: "foo",
Name: "fake-foo",
},
{
APIVersion: "v1",
Kind: "Secret",
Namespace: "foo",
Name: "fake-bar",
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
res, _ := getDependenciesFromPodTemplate(tt.pod)
if !reflect.DeepEqual(res, tt.expected) {
t.Errorf("getDependenciesFromPodTemplate() = %v, want %v", res, tt.expected)
}
})
}
}