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  }