github.com/fiagdao/tendermint@v0.32.11-0.20220824195748-2087fcc480c1/libs/events/event_cache_test.go (about) 1 package events 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestEventCache_Flush(t *testing.T) { 11 evsw := NewEventSwitch() 12 evsw.Start() 13 evsw.AddListenerForEvent("nothingness", "", func(data EventData) { 14 // Check we are not initialising an empty buffer full of zeroed eventInfos in the EventCache 15 require.FailNow(t, "We should never receive a message on this switch since none are fired") 16 }) 17 evc := NewEventCache(evsw) 18 evc.Flush() 19 // Check after reset 20 evc.Flush() 21 fail := true 22 pass := false 23 evsw.AddListenerForEvent("somethingness", "something", func(data EventData) { 24 if fail { 25 require.FailNow(t, "Shouldn't see a message until flushed") 26 } 27 pass = true 28 }) 29 evc.FireEvent("something", struct{ int }{1}) 30 evc.FireEvent("something", struct{ int }{2}) 31 evc.FireEvent("something", struct{ int }{3}) 32 fail = false 33 evc.Flush() 34 assert.True(t, pass) 35 }