github.com/vipernet-xyz/tm@v0.34.24/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  	"github.com/vipernet-xyz/tm/libs/log"
    10  
    11  	"github.com/vipernet-xyz/tm/libs/pubsub"
    12  	"github.com/vipernet-xyz/tm/libs/pubsub/query"
    13  )
    14  
    15  func TestExample(t *testing.T) {
    16  	s := pubsub.NewServer()
    17  	s.SetLogger(log.TestingLogger())
    18  	err := s.Start()
    19  	require.NoError(t, err)
    20  	t.Cleanup(func() {
    21  		if err := s.Stop(); err != nil {
    22  			t.Error(err)
    23  		}
    24  	})
    25  
    26  	ctx := context.Background()
    27  	subscription, err := s.Subscribe(ctx, "example-client", query.MustParse("abci.account.name='John'"))
    28  	require.NoError(t, err)
    29  	err = s.PublishWithEvents(ctx, "Tombstone", map[string][]string{"abci.account.name": {"John"}})
    30  	require.NoError(t, err)
    31  	assertReceive(t, "Tombstone", subscription.Out())
    32  }