github.com/prysmaticlabs/prysm@v1.4.4/slasher/db/kv/validator_id_pubkey_test.go (about) 1 package kv 2 3 import ( 4 "context" 5 "testing" 6 7 types "github.com/prysmaticlabs/eth2-types" 8 "github.com/prysmaticlabs/prysm/shared/testutil/require" 9 ) 10 11 type publicKeyTestStruct struct { 12 validatorIndex types.ValidatorIndex 13 pk []byte 14 } 15 16 var pkTests []publicKeyTestStruct 17 18 func init() { 19 pkTests = []publicKeyTestStruct{ 20 { 21 validatorIndex: 1, 22 pk: []byte{1, 2, 3}, 23 }, 24 { 25 validatorIndex: 2, 26 pk: []byte{4, 5, 6}, 27 }, 28 { 29 validatorIndex: 3, 30 pk: []byte{7, 8, 9}, 31 }, 32 } 33 } 34 35 func TestNilDBValidatorPublicKey(t *testing.T) { 36 37 db := setupDB(t) 38 ctx := context.Background() 39 40 validatorIndex := types.ValidatorIndex(1) 41 42 pk, err := db.ValidatorPubKey(ctx, validatorIndex) 43 require.NoError(t, err, "Nil ValidatorPubKey should not return error") 44 require.DeepEqual(t, []uint8(nil), pk) 45 } 46 47 func TestSavePubKey(t *testing.T) { 48 49 db := setupDB(t) 50 ctx := context.Background() 51 52 for _, tt := range pkTests { 53 err := db.SavePubKey(ctx, tt.validatorIndex, tt.pk) 54 require.NoError(t, err, "Save validator public key failed") 55 56 pk, err := db.ValidatorPubKey(ctx, tt.validatorIndex) 57 require.NoError(t, err, "Failed to get validator public key") 58 require.NotNil(t, pk) 59 require.DeepEqual(t, tt.pk, pk, "Should return validator public key") 60 } 61 } 62 63 func TestDeletePublicKey(t *testing.T) { 64 65 db := setupDB(t) 66 ctx := context.Background() 67 68 for _, tt := range pkTests { 69 require.NoError(t, db.SavePubKey(ctx, tt.validatorIndex, tt.pk), "Save validator public key failed") 70 } 71 72 for _, tt := range pkTests { 73 pk, err := db.ValidatorPubKey(ctx, tt.validatorIndex) 74 require.NoError(t, err, "Failed to get validator public key") 75 require.NotNil(t, pk) 76 require.DeepEqual(t, tt.pk, pk, "Should return validator public key") 77 78 err = db.DeletePubKey(ctx, tt.validatorIndex) 79 require.NoError(t, err, "Delete validator public key") 80 pk, err = db.ValidatorPubKey(ctx, tt.validatorIndex) 81 require.NoError(t, err) 82 require.DeepEqual(t, []byte(nil), pk, "Expected validator public key to be deleted") 83 } 84 }