forked from tektoncd/pipeline
-
Notifications
You must be signed in to change notification settings - Fork 0
/
event_test.go
92 lines (87 loc) · 1.86 KB
/
event_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package reconciler
import (
"testing"
"time"
"github.com/knative/pkg/apis"
corev1 "k8s.io/api/core/v1"
"k8s.io/client-go/tools/record"
)
func Test_EmitEvent(t *testing.T) {
testcases := []struct {
name string
before *apis.Condition
after *apis.Condition
expectEvent bool
}{
{
name: "unknown to true",
before: &apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionUnknown,
},
after: &apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionTrue,
},
expectEvent: true,
},
{
name: "true to true",
before: &apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionTrue,
},
after: &apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionTrue,
},
expectEvent: false,
},
{
name: "false to false",
before: &apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionFalse,
},
after: &apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionFalse,
},
expectEvent: false,
},
{
name: "true to nil",
after: nil,
before: &apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionTrue,
},
expectEvent: true,
},
{
name: "nil to true",
before: nil,
after: &apis.Condition{
Type: apis.ConditionSucceeded,
Status: corev1.ConditionTrue,
},
expectEvent: true,
},
}
for _, ts := range testcases {
fr := record.NewFakeRecorder(1)
tr := &corev1.Pod{}
EmitEvent(fr, ts.before, ts.after, tr)
timer := time.NewTimer(1 * time.Second)
select {
case event := <-fr.Events:
if ts.expectEvent && event == "" {
t.Errorf("Expected event but got empty for %s", ts.name)
}
case <-timer.C:
if !ts.expectEvent {
t.Errorf("Unexpected event but got for %s", ts.name)
}
}
}
}