github.com/ava-labs/avalanchego@v1.11.11/pubsub/filter_test.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package pubsub
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/ava-labs/avalanchego/api"
    12  	"github.com/ava-labs/avalanchego/ids"
    13  	"github.com/ava-labs/avalanchego/pubsub/bloom"
    14  	"github.com/ava-labs/avalanchego/utils/constants"
    15  	"github.com/ava-labs/avalanchego/utils/formatting/address"
    16  )
    17  
    18  func TestAddAddressesParseAddresses(t *testing.T) {
    19  	require := require.New(t)
    20  
    21  	chainAlias := "X"
    22  	hrp := constants.GetHRP(5)
    23  
    24  	addrID := ids.ShortID{1}
    25  	addrStr, err := address.Format(chainAlias, hrp, addrID[:])
    26  	require.NoError(err)
    27  
    28  	msg := &AddAddresses{JSONAddresses: api.JSONAddresses{
    29  		Addresses: []string{
    30  			addrStr,
    31  		},
    32  	}}
    33  
    34  	require.NoError(msg.parseAddresses())
    35  
    36  	require.Len(msg.addressIds, 1)
    37  	require.Equal(addrID[:], msg.addressIds[0])
    38  }
    39  
    40  func TestFilterParamUpdateMulti(t *testing.T) {
    41  	require := require.New(t)
    42  
    43  	fp := NewFilterParam()
    44  
    45  	addr1 := []byte("abc")
    46  	addr2 := []byte("def")
    47  	addr3 := []byte("xyz")
    48  
    49  	require.NoError(fp.Add(addr1, addr2, addr3))
    50  	require.Len(fp.set, 3)
    51  	require.Contains(fp.set, string(addr1))
    52  	require.Contains(fp.set, string(addr2))
    53  	require.Contains(fp.set, string(addr3))
    54  }
    55  
    56  func TestFilterParam(t *testing.T) {
    57  	require := require.New(t)
    58  
    59  	mapFilter := bloom.NewMap()
    60  
    61  	fp := NewFilterParam()
    62  	fp.SetFilter(mapFilter)
    63  
    64  	addr := ids.GenerateTestShortID()
    65  	require.NoError(fp.Add(addr[:]))
    66  	require.True(fp.Check(addr[:]))
    67  	delete(fp.set, string(addr[:]))
    68  
    69  	mapFilter.Add(addr[:])
    70  	require.True(fp.Check(addr[:]))
    71  	require.False(fp.Check([]byte("bye")))
    72  }
    73  
    74  func TestNewBloom(t *testing.T) {
    75  	cm := &NewBloom{}
    76  	require.False(t, cm.IsParamsValid())
    77  }