github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/network/payload/inventory_test.go (about) 1 package payload 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/nspcc-dev/neo-go/internal/testserdes" 8 "github.com/nspcc-dev/neo-go/pkg/crypto/hash" 9 "github.com/nspcc-dev/neo-go/pkg/util" 10 "github.com/stretchr/testify/assert" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestInventoryEncodeDecode(t *testing.T) { 15 hashes := []util.Uint256{ 16 hash.Sha256([]byte("a")), 17 hash.Sha256([]byte("b")), 18 } 19 inv := NewInventory(BlockType, hashes) 20 21 testserdes.EncodeDecodeBinary(t, inv, new(Inventory)) 22 } 23 24 func TestEmptyInv(t *testing.T) { 25 msgInv := NewInventory(TXType, []util.Uint256{}) 26 27 data, err := testserdes.EncodeBinary(msgInv) 28 assert.Nil(t, err) 29 assert.Equal(t, []byte{byte(TXType), 0}, data) 30 assert.Equal(t, 0, len(msgInv.Hashes)) 31 } 32 33 func TestValid(t *testing.T) { 34 require.True(t, TXType.Valid(false)) 35 require.True(t, TXType.Valid(true)) 36 require.True(t, BlockType.Valid(false)) 37 require.True(t, BlockType.Valid(true)) 38 require.True(t, ExtensibleType.Valid(false)) 39 require.True(t, ExtensibleType.Valid(true)) 40 require.False(t, P2PNotaryRequestType.Valid(false)) 41 require.True(t, P2PNotaryRequestType.Valid(true)) 42 require.False(t, InventoryType(0xFF).Valid(false)) 43 require.False(t, InventoryType(0xFF).Valid(true)) 44 } 45 46 func TestString(t *testing.T) { 47 require.Equal(t, "TX", TXType.String()) 48 require.Equal(t, "block", BlockType.String()) 49 require.Equal(t, "extensible", ExtensibleType.String()) 50 require.Equal(t, "p2pNotaryRequest", P2PNotaryRequestType.String()) 51 require.True(t, strings.Contains(InventoryType(0xFF).String(), "unknown")) 52 }