Skip to content

Commit

Permalink
feat: test for leveldb store
Browse files Browse the repository at this point in the history
  • Loading branch information
hea9549 committed Aug 19, 2020
1 parent 71e7440 commit 2bcae79
Showing 1 changed file with 119 additions and 0 deletions.
119 changes: 119 additions & 0 deletions keychain/leveldb/store_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
package leveldb

import (
"encoding/json"
"os"
"testing"

"github.com/DE-labtory/zulu/db/leveldb"
"github.com/DE-labtory/zulu/keychain"
"github.com/stretchr/testify/assert"
)

const TestTbPath = "./test_db_path"

func TestKeyStore_Get(t *testing.T) {
// set
dbProvider := leveldb.CreateNewDBProvider(TestTbPath)
defer func() {
dbProvider.Close()
err := os.RemoveAll(TestTbPath)
if err != nil {
t.Log(err.Error())
}
}()
keyStoreHandle := dbProvider.GetDBHandle("keystore")

// given
keyId := "testKeyId"
keyData := keychain.Key{
ID: keyId,
PrivateKey: []byte("testPrivateKey"),
PublicKey: []byte("testPublicKey"),
}
rawData, err := json.Marshal(keyData)
assert.NoError(t, err)

err = keyStoreHandle.Put([]byte(keyId), rawData, true)
assert.NoError(t, err)

keyStore := NewKeyStore(keyStoreHandle)

// when
retrieveKey, err := keyStore.Get(keyId)

// then
assert.NoError(t, err)
assert.Equal(t, keyData, retrieveKey)
}

func TestKeyStore_GetNotFound(t *testing.T) {
// set
dbProvider := leveldb.CreateNewDBProvider(TestTbPath)
defer func() {
dbProvider.Close()
err := os.RemoveAll(TestTbPath)
if err != nil {
t.Log(err.Error())
}
}()
keyStoreHandle := dbProvider.GetDBHandle("keystore")

// given
keyId := "testKeyId"
keyData := keychain.Key{
ID: keyId,
PrivateKey: []byte("testPrivateKey"),
PublicKey: []byte("testPublicKey"),
}
rawData, err := json.Marshal(keyData)
assert.NoError(t, err)

err = keyStoreHandle.Put([]byte(keyId), rawData, true)
assert.NoError(t, err)

keyStore := NewKeyStore(keyStoreHandle)

// when
retrieveKey, err := keyStore.Get(keyId + "NOT_FOUND")

// then
assert.Error(t, err)
assert.Equal(t, keychain.Key{}, retrieveKey)
}

func TestKeyStore_Store(t *testing.T) {
// set
dbProvider := leveldb.CreateNewDBProvider(TestTbPath)
defer func() {
dbProvider.Close()
err := os.RemoveAll(TestTbPath)
if err != nil {
t.Log(err.Error())
}
}()
keyStoreHandle := dbProvider.GetDBHandle("keystore")

// given
keyId := "testKeyId"
keyData := keychain.Key{
ID: keyId,
PrivateKey: []byte("testPrivateKey"),
PublicKey: []byte("testPublicKey"),
}
rawData, err := json.Marshal(keyData)
assert.NoError(t, err)

keyStore := NewKeyStore(keyStoreHandle)

//when
err = keyStore.Store(keyData)

// then
assert.NoError(t, err)

d, err := keyStoreHandle.Get([]byte(keyId))
assert.NoError(t, err)
assert.Equal(t, rawData, d)

}

0 comments on commit 2bcae79

Please sign in to comment.