github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/rpc/prysm/v1alpha1/debug/p2p_test.go (about) 1 package debug 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/golang/protobuf/ptypes/empty" 8 mockP2p "github.com/prysmaticlabs/prysm/beacon-chain/p2p/testing" 9 ethpb "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1" 10 "github.com/prysmaticlabs/prysm/shared/testutil/assert" 11 "github.com/prysmaticlabs/prysm/shared/testutil/require" 12 ) 13 14 func TestDebugServer_GetPeer(t *testing.T) { 15 peersProvider := &mockP2p.MockPeersProvider{} 16 mP2P := mockP2p.NewTestP2P(t) 17 ds := &Server{ 18 PeersFetcher: peersProvider, 19 PeerManager: &mockP2p.MockPeerManager{BHost: mP2P.BHost}, 20 } 21 firstPeer := peersProvider.Peers().All()[0] 22 23 res, err := ds.GetPeer(context.Background(), ðpb.PeerRequest{PeerId: firstPeer.String()}) 24 require.NoError(t, err) 25 require.Equal(t, firstPeer.String(), res.PeerId, "Unexpected peer ID") 26 27 assert.Equal(t, int(ethpb.PeerDirection_INBOUND), int(res.Direction), "Expected 1st peer to be an inbound connection") 28 assert.Equal(t, ethpb.ConnectionState_CONNECTED, res.ConnectionState, "Expected peer to be connected") 29 } 30 31 func TestDebugServer_ListPeers(t *testing.T) { 32 peersProvider := &mockP2p.MockPeersProvider{} 33 mP2P := mockP2p.NewTestP2P(t) 34 ds := &Server{ 35 PeersFetcher: peersProvider, 36 PeerManager: &mockP2p.MockPeerManager{BHost: mP2P.BHost}, 37 } 38 39 res, err := ds.ListPeers(context.Background(), &empty.Empty{}) 40 require.NoError(t, err) 41 assert.Equal(t, 2, len(res.Responses)) 42 43 assert.Equal(t, int(ethpb.PeerDirection_INBOUND), int(res.Responses[0].Direction), "Expected 1st peer to be an inbound") 44 if len(res.Responses[0].ListeningAddresses) == 0 { 45 t.Errorf("Expected 1st peer to have a multiaddress, instead they have no addresses") 46 } 47 assert.Equal(t, ethpb.PeerDirection_OUTBOUND, res.Responses[1].Direction, "Expected 2st peer to be an outbound connection") 48 if len(res.Responses[1].ListeningAddresses) == 0 { 49 t.Errorf("Expected 2nd peer to have a multiaddress, instead they have no addresses") 50 } 51 }