vm-import-controller/pkg/util/conditions_test.go
PoAn Yang 148cec8766 fix: golangci-lint error
Signed-off-by: PoAn Yang <poan.yang@suse.com>
2024-01-12 10:55:44 +08:00

125 lines
4.3 KiB
Go

package util
import (
"testing"
"time"
"github.com/stretchr/testify/require"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"github.com/harvester/vm-import-controller/pkg/apis/common"
migration "github.com/harvester/vm-import-controller/pkg/apis/migration.harvesterhci.io/v1beta1"
)
func Test_ConditionExists(t *testing.T) {
conditions := []common.Condition{
{
Type: migration.ClusterReadyCondition,
Status: corev1.ConditionTrue,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
{
Type: migration.ClusterErrorCondition,
Status: corev1.ConditionFalse,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
}
assert := require.New(t)
assert.True(ConditionExists(conditions, migration.ClusterReadyCondition, corev1.ConditionTrue))
assert.True(ConditionExists(conditions, migration.ClusterErrorCondition, corev1.ConditionFalse))
}
func Test_AddOrUpdateCondition(t *testing.T) {
conditions := []common.Condition{
{
Type: migration.ClusterReadyCondition,
Status: corev1.ConditionTrue,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
{
Type: migration.ClusterErrorCondition,
Status: corev1.ConditionFalse,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
}
extraCondition := common.Condition{
Type: migration.VirtualMachinePoweringOff,
Status: corev1.ConditionTrue,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
}
newCond := AddOrUpdateCondition(conditions, extraCondition)
assert := require.New(t)
assert.True(ConditionExists(newCond, migration.VirtualMachinePoweringOff, corev1.ConditionTrue))
assert.True(ConditionExists(conditions, migration.ClusterErrorCondition, corev1.ConditionFalse))
assert.True(ConditionExists(conditions, migration.ClusterReadyCondition, corev1.ConditionTrue))
}
func Test_MergeConditions(t *testing.T) {
conditions := []common.Condition{
{
Type: migration.ClusterReadyCondition,
Status: corev1.ConditionTrue,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
{
Type: migration.ClusterErrorCondition,
Status: corev1.ConditionFalse,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
}
extraConditions := []common.Condition{
{
Type: migration.VirtualMachineExported,
Status: corev1.ConditionTrue,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
{
Type: migration.VirtualMachineImageReady,
Status: corev1.ConditionTrue,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
}
newConds := MergeConditions(conditions, extraConditions)
assert := require.New(t)
assert.Len(newConds, 4, "expected to find 4 conditions in the merged conditions")
}
func Test_RemoveCondition(t *testing.T) {
conditions := []common.Condition{
{
Type: migration.ClusterReadyCondition,
Status: corev1.ConditionTrue,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
{
Type: migration.ClusterErrorCondition,
Status: corev1.ConditionFalse,
LastUpdateTime: metav1.Now().Format(time.RFC3339),
LastTransitionTime: metav1.Now().Format(time.RFC3339),
},
}
noRemoveCond := RemoveCondition(conditions, migration.ClusterErrorCondition, corev1.ConditionTrue)
assert := require.New(t)
assert.True(ConditionExists(noRemoveCond, migration.ClusterErrorCondition, corev1.ConditionFalse))
removeCond := RemoveCondition(conditions, migration.ClusterErrorCondition, corev1.ConditionFalse)
assert.False(ConditionExists(removeCond, migration.ClusterErrorCondition, corev1.ConditionFalse))
}