github.com/onflow/flow-go@v0.33.17/network/p2p/scoring/utils_test.go (about) 1 package scoring_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/onflow/flow-go/module/mock" 9 "github.com/onflow/flow-go/network/p2p/scoring" 10 "github.com/onflow/flow-go/utils/unittest" 11 ) 12 13 // TestHasValidIdentity_Unknown tests that when a peer has an unknown identity, the HasValidIdentity returns InvalidPeerIDError 14 func TestHasValidIdentity_Unknown(t *testing.T) { 15 peerId := unittest.PeerIdFixture(t) 16 idProvider := mock.NewIdentityProvider(t) 17 idProvider.On("ByPeerID", peerId).Return(nil, false) 18 19 identity, err := scoring.HasValidFlowIdentity(idProvider, peerId) 20 require.Nil(t, identity) 21 require.Error(t, err) 22 require.True(t, scoring.IsInvalidPeerIDError(err)) 23 require.Contains(t, err.Error(), scoring.PeerIdStatusUnknown) 24 } 25 26 // TestHasValidIdentity_Ejected tests that when a peer has been ejected, the HasValidIdentity returns an InvalidPeerIDError. 27 func TestHasValidIdentity_Ejected(t *testing.T) { 28 idProvider := mock.NewIdentityProvider(t) 29 30 ejectedIdentity := unittest.IdentityFixture() 31 ejectedIdentity.Ejected = true 32 peerId := unittest.PeerIdFixture(t) 33 idProvider.On("ByPeerID", peerId).Return(ejectedIdentity, true) 34 35 identity, err := scoring.HasValidFlowIdentity(idProvider, peerId) 36 require.Error(t, err) 37 require.True(t, scoring.IsInvalidPeerIDError(err)) 38 require.Contains(t, err.Error(), scoring.PeerIdStatusEjected) 39 require.Nil(t, identity) 40 } 41 42 // TestHasValidIdentity_valid tests that when a peer has a valid identity, the HasValidIdentity returns that identity. 43 func TestHasValidIdentity_Valid(t *testing.T) { 44 idProvider := mock.NewIdentityProvider(t) 45 46 trueID := unittest.IdentityFixture() 47 peerId := unittest.PeerIdFixture(t) 48 idProvider.On("ByPeerID", peerId).Return(trueID, true) 49 50 identity, err := scoring.HasValidFlowIdentity(idProvider, peerId) 51 require.NoError(t, err) 52 require.Equal(t, trueID, identity) 53 }