github.com/unionj-cloud/go-doudou/v2@v2.3.5/toolkit/memberlist/event_delegate_test.go (about) 1 package memberlist 2 3 import ( 4 "github.com/stretchr/testify/require" 5 "testing" 6 ) 7 8 func TestChannelEventDelegate_NotifyJoin(t *testing.T) { 9 eventCh := make(chan NodeEvent, 1) 10 c := &ChannelEventDelegate{ 11 Ch: eventCh, 12 } 13 c.NotifyJoin(&Node{ 14 Name: "", 15 Addr: "test", 16 Port: 7946, 17 }) 18 ne := <-eventCh 19 require.Equal(t, NodeJoin, ne.Event) 20 } 21 22 func TestChannelEventDelegate_NotifyLeave(t *testing.T) { 23 eventCh := make(chan NodeEvent, 1) 24 c := &ChannelEventDelegate{ 25 Ch: eventCh, 26 } 27 c.NotifyLeave(&Node{ 28 Name: "", 29 Addr: "test", 30 Port: 7946, 31 }) 32 ne := <-eventCh 33 require.Equal(t, NodeLeave, ne.Event) 34 } 35 36 func TestChannelEventDelegate_NotifyUpdate(t *testing.T) { 37 eventCh := make(chan NodeEvent, 1) 38 c := &ChannelEventDelegate{ 39 Ch: eventCh, 40 } 41 c.NotifyUpdate(&Node{ 42 Name: "", 43 Addr: "test", 44 Port: 7946, 45 }) 46 ne := <-eventCh 47 require.Equal(t, NodeUpdate, ne.Event) 48 } 49 50 func TestChannelEventDelegate_NotifyWeight(t *testing.T) { 51 eventCh := make(chan NodeEvent, 1) 52 c := &ChannelEventDelegate{ 53 Ch: eventCh, 54 } 55 c.NotifyWeight(&Node{ 56 Name: "", 57 Addr: "test", 58 Port: 7946, 59 }) 60 ne := <-eventCh 61 require.Equal(t, NodeWeight, ne.Event) 62 } 63 64 func TestChannelEventDelegate_NotifySuspectSateChange(t *testing.T) { 65 eventCh := make(chan NodeEvent, 1) 66 c := &ChannelEventDelegate{ 67 Ch: eventCh, 68 } 69 c.NotifySuspectSateChange(&Node{ 70 Name: "", 71 Addr: "test", 72 Port: 7946, 73 }) 74 ne := <-eventCh 75 require.Equal(t, NodeSuspect, ne.Event) 76 }