github.com/number571/tendermint@v0.34.11-gost/libs/pubsub/example_test.go (about) 1 package pubsub_test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 abci "github.com/number571/tendermint/abci/types" 10 "github.com/number571/tendermint/libs/log" 11 "github.com/number571/tendermint/libs/pubsub" 12 "github.com/number571/tendermint/libs/pubsub/query" 13 ) 14 15 func TestExample(t *testing.T) { 16 s := pubsub.NewServer() 17 s.SetLogger(log.TestingLogger()) 18 19 require.NoError(t, s.Start()) 20 21 t.Cleanup(func() { 22 if err := s.Stop(); err != nil { 23 t.Error(err) 24 } 25 }) 26 27 ctx := context.Background() 28 29 subscription, err := s.Subscribe(ctx, "example-client", query.MustParse("abci.account.name='John'")) 30 require.NoError(t, err) 31 32 events := []abci.Event{ 33 { 34 Type: "abci.account", 35 Attributes: []abci.EventAttribute{{Key: "name", Value: "John"}}, 36 }, 37 } 38 err = s.PublishWithEvents(ctx, "Tombstone", events) 39 require.NoError(t, err) 40 41 assertReceive(t, "Tombstone", subscription.Out()) 42 }