github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/network/payload/version_test.go (about)

     1  package payload
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/nspcc-dev/neo-go/internal/testserdes"
     7  	"github.com/nspcc-dev/neo-go/pkg/config/netmode"
     8  	"github.com/nspcc-dev/neo-go/pkg/network/capability"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  func TestVersionEncodeDecode(t *testing.T) {
    13  	var magic netmode.Magic = 56753
    14  	var tcpPort uint16 = 3000
    15  	var wsPort uint16 = 3001
    16  	var id uint32 = 13337
    17  	useragent := "/NEO:0.0.1/"
    18  	var height uint32 = 100500
    19  	var capabilities = []capability.Capability{
    20  		{
    21  			Type: capability.TCPServer,
    22  			Data: &capability.Server{
    23  				Port: tcpPort,
    24  			},
    25  		},
    26  		{
    27  			Type: capability.WSServer,
    28  			Data: &capability.Server{
    29  				Port: wsPort,
    30  			},
    31  		},
    32  		{
    33  			Type: capability.FullNode,
    34  			Data: &capability.Node{
    35  				StartHeight: height,
    36  			},
    37  		},
    38  	}
    39  
    40  	version := NewVersion(magic, id, useragent, capabilities)
    41  	versionDecoded := &Version{}
    42  	testserdes.EncodeDecodeBinary(t, version, versionDecoded)
    43  
    44  	assert.Equal(t, versionDecoded.Nonce, id)
    45  	assert.ElementsMatch(t, capabilities, versionDecoded.Capabilities)
    46  	assert.Equal(t, versionDecoded.UserAgent, []byte(useragent))
    47  	assert.Equal(t, version, versionDecoded)
    48  }