168 lines
3.5 KiB
Go
168 lines
3.5 KiB
Go
package helper
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
corev1 "k8s.io/api/core/v1"
|
|
)
|
|
|
|
func TestGetPodCondition(t *testing.T) {
|
|
type args struct {
|
|
status *corev1.PodStatus
|
|
conditionType corev1.PodConditionType
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantedOrder int
|
|
wantCondition *corev1.PodCondition
|
|
}{
|
|
{
|
|
name: "empty status",
|
|
args: args{
|
|
status: nil,
|
|
conditionType: corev1.ContainersReady,
|
|
},
|
|
wantedOrder: -1,
|
|
wantCondition: nil,
|
|
},
|
|
{
|
|
name: "empty condition",
|
|
args: args{
|
|
status: &corev1.PodStatus{Conditions: nil},
|
|
conditionType: corev1.ContainersReady,
|
|
},
|
|
wantedOrder: -1,
|
|
wantCondition: nil,
|
|
},
|
|
{
|
|
name: "doesn't have objective condition",
|
|
args: args{
|
|
status: &corev1.PodStatus{
|
|
Conditions: []corev1.PodCondition{
|
|
{
|
|
Type: corev1.PodInitialized,
|
|
},
|
|
},
|
|
},
|
|
conditionType: corev1.ContainersReady,
|
|
},
|
|
wantedOrder: -1,
|
|
wantCondition: nil,
|
|
},
|
|
{
|
|
name: "have objective condition",
|
|
args: args{
|
|
status: &corev1.PodStatus{
|
|
Conditions: []corev1.PodCondition{
|
|
{
|
|
Type: corev1.PodInitialized,
|
|
},
|
|
{
|
|
Type: corev1.ContainersReady,
|
|
},
|
|
},
|
|
},
|
|
conditionType: corev1.ContainersReady,
|
|
},
|
|
wantedOrder: 1,
|
|
wantCondition: &corev1.PodCondition{
|
|
Type: corev1.ContainersReady,
|
|
},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, got1 := GetPodCondition(tt.args.status, tt.args.conditionType)
|
|
if got != tt.wantedOrder {
|
|
t.Errorf("GetPodCondition() got = %v, wantedOrder %v", got, tt.wantedOrder)
|
|
}
|
|
if !reflect.DeepEqual(got1, tt.wantCondition) {
|
|
t.Errorf("GetPodCondition() got1 = %v, wantedOrder %v", got1, tt.wantCondition)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestGetPodConditionFromList(t *testing.T) {
|
|
type args struct {
|
|
conditions []corev1.PodCondition
|
|
conditionType corev1.PodConditionType
|
|
}
|
|
var tests = []struct {
|
|
name string
|
|
args args
|
|
wantedOrder int
|
|
wantCondition *corev1.PodCondition
|
|
}{
|
|
{
|
|
name: "empty condition",
|
|
args: args{
|
|
conditions: nil,
|
|
conditionType: corev1.ContainersReady,
|
|
},
|
|
wantedOrder: -1,
|
|
wantCondition: nil,
|
|
},
|
|
{
|
|
name: "doesn't have objective condition",
|
|
args: args{
|
|
conditions: []corev1.PodCondition{
|
|
{
|
|
Type: corev1.PodInitialized,
|
|
},
|
|
},
|
|
conditionType: corev1.ContainersReady,
|
|
},
|
|
wantedOrder: -1,
|
|
wantCondition: nil,
|
|
},
|
|
{
|
|
name: "have objective condition",
|
|
args: args{
|
|
conditions: []corev1.PodCondition{
|
|
{
|
|
Type: corev1.PodInitialized,
|
|
},
|
|
{
|
|
Type: corev1.ContainersReady,
|
|
},
|
|
},
|
|
conditionType: corev1.ContainersReady,
|
|
},
|
|
wantedOrder: 1,
|
|
wantCondition: &corev1.PodCondition{
|
|
Type: corev1.ContainersReady,
|
|
},
|
|
},
|
|
{
|
|
name: "PodReady condition",
|
|
args: args{
|
|
conditions: []corev1.PodCondition{
|
|
{
|
|
Type: corev1.PodInitialized,
|
|
},
|
|
{
|
|
Type: corev1.PodReady,
|
|
},
|
|
},
|
|
conditionType: corev1.ContainersReady,
|
|
},
|
|
wantedOrder: -1,
|
|
wantCondition: nil,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, got1 := GetPodConditionFromList(tt.args.conditions, tt.args.conditionType)
|
|
if got != tt.wantedOrder {
|
|
t.Errorf("GetPodConditionFromList() got = %v, wantedOrder %v", got, tt.wantedOrder)
|
|
}
|
|
if !reflect.DeepEqual(got1, tt.wantCondition) {
|
|
t.Errorf("GetPodConditionFromList() got1 = %v, wantedOrder %v", got1, tt.wantCondition)
|
|
}
|
|
})
|
|
}
|
|
}
|