OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / tendermint / tmlibs / events / event_cache_test.go
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 }