MCPcopy Create free account
hub / github.com/DNAProject/DNA / TestVersionHandle

Function TestVersionHandle

p2pserver/message/utils/msg_handler_test.go:155–195  ·  view source on GitHub ↗

TestVersionHandle tests Function VersionHandle handling a version message

(t *testing.T)

Source from the content-addressed store, hash-verified

153
154// TestVersionHandle tests Function VersionHandle handling a version message
155func TestVersionHandle(t *testing.T) {
156 // Simulate a remote peer to connect to the local
157 remotePeer := peer.NewPeer()
158 assert.NotNil(t, remotePeer)
159
160 network.AddPeerAddress("127.0.0.1:50010", remotePeer)
161
162 var testID uint64
163 _, testPub, _ := keypair.GenerateKeyPair(keypair.PK_ECDSA, keypair.P256)
164 key := keypair.SerializePublicKey(testPub)
165 err := binary.Read(bytes.NewBuffer(key[:8]), binary.LittleEndian, &(testID))
166 assert.Nil(t, err)
167
168 // Construct a version packet
169 buf := msgpack.NewVersion(network, 12345)
170 version := buf.(*types.Version)
171 version.P.Nonce = testID
172
173 msg := &types.MsgPayload{
174 Id: testID,
175 Addr: "127.0.0.1:50010",
176 Payload: buf,
177 }
178
179 // Invoke VersionHandle to handle the msg
180 VersionHandle(msg, network, nil)
181
182 // Get the remote peer from the neighbor peers by peer id
183 tempPeer := network.GetPeer(testID)
184 assert.NotNil(t, tempPeer)
185
186 assert.Equal(t, tempPeer.GetID(), testID)
187 assert.Equal(t, tempPeer.GetVersion(), network.GetVersion())
188 assert.Equal(t, tempPeer.GetServices(), network.GetServices())
189 assert.Equal(t, tempPeer.GetPort(), network.GetPort())
190 assert.Equal(t, tempPeer.GetHttpInfoPort(), network.GetHttpInfoPort())
191 assert.Equal(t, tempPeer.GetHeight(), uint64(12345))
192 assert.Equal(t, tempPeer.GetState(), uint32(msgCommon.HAND_SHAKE))
193
194 network.DelNbrNode(testID)
195}
196
197// TestVerAckHandle tests Function VerAckHandle handling a version ack
198func TestVerAckHandle(t *testing.T) {

Callers

nothing calls this directly

Calls 12

NewPeerFunction · 0.92
VersionHandleFunction · 0.85
AddPeerAddressMethod · 0.65
GetPeerMethod · 0.65
GetIDMethod · 0.65
GetVersionMethod · 0.65
GetServicesMethod · 0.65
GetPortMethod · 0.65
GetHttpInfoPortMethod · 0.65
GetHeightMethod · 0.65
DelNbrNodeMethod · 0.65
GetStateMethod · 0.45

Tested by

no test coverage detected