add ut for dependencies
Signed-off-by: AllenZMC <zhongming.chang@daocloud.io>
This commit is contained in:
parent
6de167e209
commit
c7e770c51d
|
@ -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)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue