test: add test examples for prefixdb.go (#22752)

Co-authored-by: heren-ke <fghjtuy@163.com>
This commit is contained in:
xujiangyu 2024-12-07 20:53:05 +08:00 committed by GitHub
parent dda47b5e0e
commit 8ca82729fa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

49
store/db/prefixdb_test.go Normal file
View File

@ -0,0 +1,49 @@
package db_test
import (
"testing"
"cosmossdk.io/store/db"
"cosmossdk.io/store/mock"
"github.com/stretchr/testify/require"
"go.uber.org/mock/gomock"
)
func TestPrefixDB(t *testing.T) {
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
mockDB := mock.NewMockKVStoreWithBatch(mockCtrl)
prefix := []byte("test:")
pdb := db.NewPrefixDB(mockDB, prefix)
key := []byte("key1")
value := []byte("value1")
mockDB.EXPECT().Set(gomock.Eq(append(prefix, key...)), gomock.Eq(value)).Return(nil)
err := pdb.Set(key, value)
require.NoError(t, err)
mockDB.EXPECT().Get(gomock.Eq(append(prefix, key...))).Return(value, nil)
returnedValue, err := pdb.Get(key)
require.NoError(t, err)
require.Equal(t, value, returnedValue)
mockDB.EXPECT().Has(gomock.Eq(append(prefix, key...))).Return(true, nil)
has, err := pdb.Has(key)
require.NoError(t, err)
require.True(t, has)
mockDB.EXPECT().Delete(gomock.Eq(append(prefix, key...))).Return(nil)
err = pdb.Delete(key)
require.NoError(t, err)
mockDB.EXPECT().Has(gomock.Eq(append(prefix, key...))).Return(false, nil)
has, err = pdb.Has(key)
require.NoError(t, err)
require.False(t, has)
}