Skip to content

Commit

Permalink
Merge pull request #3621 from realnumber666/add-ut/crb_status_controller
Browse files Browse the repository at this point in the history
Add ut for `pkg/controllers/applicationfailover` and `pkg/controllers/status`
  • Loading branch information
karmada-bot committed Jun 6, 2023
2 parents 8045da4 + 7864e11 commit 527efd1
Show file tree
Hide file tree
Showing 5 changed files with 1,214 additions and 0 deletions.
69 changes: 69 additions & 0 deletions pkg/controllers/applicationfailover/common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,78 @@ import (
"reflect"
"testing"

"github.com/stretchr/testify/assert"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/sets"

workv1alpha2 "github.com/karmada-io/karmada/pkg/apis/work/v1alpha2"
)

func TestTimeStampProcess(t *testing.T) {
key := types.NamespacedName{
Namespace: "default",
Name: "test",
}
cluster := "cluster-1"

m := newWorkloadUnhealthyMap()
m.setTimeStamp(key, cluster)
res := m.hasWorkloadBeenUnhealthy(key, cluster)
assert.Equal(t, true, res)

time := m.getTimeStamp(key, cluster)
assert.NotEmpty(t, time)

m.delete(key)
res = m.hasWorkloadBeenUnhealthy(key, cluster)
assert.Equal(t, false, res)
}

func TestWorkloadUnhealthyMap_deleteIrrelevantClusters(t *testing.T) {
cluster1 := "cluster-1"
cluster2 := "cluster-2"
cluster3 := "cluster-3"
t.Run("normal case", func(t *testing.T) {
key := types.NamespacedName{
Namespace: "default",
Name: "test",
}

m := newWorkloadUnhealthyMap()

m.setTimeStamp(key, cluster1)
m.setTimeStamp(key, cluster2)
m.setTimeStamp(key, cluster3)

allClusters := sets.New[string](cluster2, cluster3)
healthyClusters := []string{cluster3}

m.deleteIrrelevantClusters(key, allClusters, healthyClusters)
res1 := m.hasWorkloadBeenUnhealthy(key, cluster1)
assert.Equal(t, false, res1)
res2 := m.hasWorkloadBeenUnhealthy(key, cluster2)
assert.Equal(t, true, res2)
res3 := m.hasWorkloadBeenUnhealthy(key, cluster3)
assert.Equal(t, false, res3)
})

t.Run("unhealthyClusters is nil", func(t *testing.T) {
key := types.NamespacedName{
Namespace: "default",
Name: "test",
}

m := newWorkloadUnhealthyMap()

allClusters := sets.New[string](cluster2, cluster3)
healthyClusters := []string{cluster3}

m.deleteIrrelevantClusters(key, allClusters, healthyClusters)
res := m.hasWorkloadBeenUnhealthy(key, cluster2)
assert.Equal(t, false, res)
})
}

func TestDistinguishUnhealthyClustersWithOthers(t *testing.T) {
tests := []struct {
name string
Expand Down
Loading

0 comments on commit 527efd1

Please sign in to comment.