MCPcopy Create free account
hub / github.com/FairwindsOps/gemini / TestBackupHandler

Function TestBackupHandler

pkg/controller/controller_test.go:66–120  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

64}
65
66func TestBackupHandler(t *testing.T) {
67 ctrl, client := newTestController()
68
69 sg := newSnapshotGroup("foo", "foo")
70 snaps, err := snapshots.ListSnapshots(sg)
71 assert.NoError(t, err)
72 assert.Equal(t, 0, len(snaps))
73
74 _, err = client.SnapshotGroupClient.SnapshotGroups("foo").Create(context.Background(), sg, metav1.CreateOptions{})
75 assert.NoError(t, err)
76
77 event := workItem{
78 name: "foo",
79 namespace: "foo",
80 snapshotGroup: sg,
81 task: backupTask,
82 }
83 err = ctrl.syncHandler(event)
84 assert.NoError(t, err)
85
86 snaps, err = snapshots.ListSnapshots(sg)
87 assert.NoError(t, err)
88 assert.Equal(t, 1, len(snaps))
89 assert.Equal(t, []string{"1 second"}, snaps[0].Intervals)
90
91 pvcClient := client.K8s.CoreV1().PersistentVolumeClaims(sg.ObjectMeta.Namespace)
92 pvc, err := pvcClient.Get(context.TODO(), sg.ObjectMeta.Name, metav1.GetOptions{})
93 assert.NoError(t, err)
94 assert.Equal(t, "gemini", pvc.ObjectMeta.Annotations["app.kubernetes.io/managed-by"])
95
96 time.Sleep(time.Second)
97 err = ctrl.syncHandler(event)
98 assert.NoError(t, err)
99
100 snaps, err = snapshots.ListSnapshots(sg)
101 assert.NoError(t, err)
102 assert.Equal(t, 2, len(snaps))
103 assert.Equal(t, []string{"1 second"}, snaps[0].Intervals)
104 assert.Equal(t, []string{"1 second"}, snaps[1].Intervals)
105
106 firstTS := snaps[1].Timestamp
107 secondTS := snaps[0].Timestamp
108
109 time.Sleep(time.Second)
110 err = ctrl.syncHandler(event)
111 assert.NoError(t, err)
112
113 snaps, err = snapshots.ListSnapshots(sg)
114 assert.NoError(t, err)
115 assert.Equal(t, 2, len(snaps))
116 assert.Equal(t, []string{"1 second"}, snaps[0].Intervals)
117 assert.Equal(t, []string{"1 second"}, snaps[1].Intervals)
118 assert.Equal(t, secondTS, snaps[1].Timestamp)
119 assert.NotEqual(t, firstTS, snaps[0].Timestamp)
120}
121
122func TestRestoreHandler(t *testing.T) {
123 ctrl, client := newTestController()

Callers

nothing calls this directly

Calls 7

ListSnapshotsFunction · 0.92
newTestControllerFunction · 0.85
newSnapshotGroupFunction · 0.85
syncHandlerMethod · 0.80
CreateMethod · 0.65
SnapshotGroupsMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected