github.com/kubeshop/testkube@v1.17.23/pkg/event/kind/common/interface_test.go (about) 1 package common 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "github.com/kubeshop/testkube/pkg/api/v1/testkube" 9 ) 10 11 func TestCompareListeners(t *testing.T) { 12 t.Parallel() 13 14 t.Run("both nil metada", func(t *testing.T) { 15 t.Parallel() 16 l1 := &NilListener{} 17 l2 := &NilListener{} 18 19 result := CompareListeners(l1, l2) 20 21 assert.Equal(t, true, result) 22 }) 23 24 t.Run("one nil metada and one not nil metada", func(t *testing.T) { 25 t.Parallel() 26 l1 := &NilListener{} 27 l2 := &FakeListener{} 28 29 result := CompareListeners(l1, l2) 30 31 assert.Equal(t, false, result) 32 }) 33 34 t.Run("equal metada", func(t *testing.T) { 35 t.Parallel() 36 l1 := &FakeListener{field1: "1", field2: "2"} 37 l2 := &FakeListener{field1: "1", field2: "2"} 38 39 result := CompareListeners(l1, l2) 40 41 assert.Equal(t, true, result) 42 }) 43 44 t.Run("not equal metada", func(t *testing.T) { 45 t.Parallel() 46 l1 := &FakeListener{field1: "2", field2: "1"} 47 l2 := &FakeListener{field1: "1", field2: "2"} 48 49 result := CompareListeners(l1, l2) 50 51 assert.Equal(t, false, result) 52 }) 53 54 } 55 56 var _ Listener = (*NilListener)(nil) 57 58 type NilListener struct { 59 } 60 61 func (l *NilListener) Notify(event testkube.Event) testkube.EventResult { 62 return testkube.EventResult{Id: event.Id} 63 } 64 65 func (l *NilListener) Name() string { 66 return "" 67 } 68 69 func (l *NilListener) Events() []testkube.EventType { 70 return nil 71 } 72 73 func (l NilListener) Selector() string { 74 return "" 75 } 76 77 func (l *NilListener) Kind() string { 78 return "" 79 } 80 81 func (l *NilListener) Metadata() map[string]string { 82 return nil 83 } 84 85 var _ Listener = (*FakeListener)(nil) 86 87 type FakeListener struct { 88 field1 string 89 field2 string 90 } 91 92 func (l *FakeListener) Notify(event testkube.Event) testkube.EventResult { 93 return testkube.EventResult{Id: event.Id} 94 } 95 96 func (l *FakeListener) Name() string { 97 return "" 98 } 99 100 func (l *FakeListener) Events() []testkube.EventType { 101 return nil 102 } 103 104 func (l FakeListener) Selector() string { 105 return "" 106 } 107 108 func (l *FakeListener) Kind() string { 109 return "" 110 } 111 112 func (l *FakeListener) Metadata() map[string]string { 113 return map[string]string{ 114 "field1": l.field1, 115 "field2": l.field2, 116 } 117 }