https://github.com/tendermint/tendermint
Raw File
Tip revision: 604eae86b66282185e2a3a5906031f1df223b779 authored by Ethan Buchman on 05 September 2018, 23:15:06 UTC
Merge branch 'master' into release/v0.24.0
Tip revision: 604eae8
event_cache_test.go
package events

import (
	"testing"

	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
)

func TestEventCache_Flush(t *testing.T) {
	evsw := NewEventSwitch()
	evsw.Start()
	evsw.AddListenerForEvent("nothingness", "", func(data EventData) {
		// Check we are not initialising an empty buffer full of zeroed eventInfos in the EventCache
		require.FailNow(t, "We should never receive a message on this switch since none are fired")
	})
	evc := NewEventCache(evsw)
	evc.Flush()
	// Check after reset
	evc.Flush()
	fail := true
	pass := false
	evsw.AddListenerForEvent("somethingness", "something", func(data EventData) {
		if fail {
			require.FailNow(t, "Shouldn't see a message until flushed")
		}
		pass = true
	})
	evc.FireEvent("something", struct{ int }{1})
	evc.FireEvent("something", struct{ int }{2})
	evc.FireEvent("something", struct{ int }{3})
	fail = false
	evc.Flush()
	assert.True(t, pass)
}
back to top