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  }