github.com/unicornultrafoundation/go-u2u@v1.0.0-rc1.0.20240205080301-e74a83d3fadc/valkeystore/files_test.go (about) 1 package valkeystore 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path" 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 "github.com/unicornultrafoundation/go-u2u/accounts/keystore" 11 12 "github.com/unicornultrafoundation/go-u2u/valkeystore/encryption" 13 ) 14 15 func TestFileKeystoreAdd(t *testing.T) { 16 dir, err := ioutil.TempDir("", "valkeystore_test") 17 if err != nil { 18 return 19 } 20 defer os.RemoveAll(dir) 21 22 require := require.New(t) 23 keystore := NewFileKeystore(dir, encryption.New(keystore.LightScryptN, keystore.LightScryptP)) 24 25 key, err := keystore.Get(pubkey1, "auth1") 26 require.EqualError(err, ErrNotFound.Error()) 27 require.Nil(key) 28 29 err = keystore.Add(pubkey1, key1, "auth1") 30 require.NoError(err) 31 _, err = os.Stat(path.Join(dir, name1)) 32 require.NoError(err) 33 34 testGet(t, keystore, pubkey1, key1, "auth1") 35 36 err = keystore.Add(pubkey2, key2, "auth2") 37 require.NoError(err) 38 _, err = os.Stat(path.Join(dir, name2)) 39 require.NoError(err) 40 41 testGet(t, keystore, pubkey1, key1, "auth1") 42 testGet(t, keystore, pubkey2, key2, "auth2") 43 44 err = keystore.Add(pubkey2, key2, "auth1") 45 require.Error(err, ErrAlreadyExists.Error()) 46 47 testGet(t, keystore, pubkey2, key2, "auth2") 48 } 49 50 func TestFileKeystoreRead(t *testing.T) { 51 dir, err := ioutil.TempDir("", "valkeystore_test") 52 if err != nil { 53 return 54 } 55 defer os.RemoveAll(dir) 56 57 require := require.New(t) 58 keystore := NewFileKeystore(dir, encryption.New(keystore.LightScryptN, keystore.LightScryptP)) 59 60 fd, err := os.Create(path.Join(dir, name1)) 61 require.NoError(err) 62 _, err = fd.Write(file1) 63 require.NoError(err) 64 65 testGet(t, keystore, pubkey1, key1, "auth1") 66 67 fd, err = os.Create(path.Join(dir, name2)) 68 require.NoError(err) 69 _, err = fd.Write(file2) 70 require.NoError(err) 71 72 testGet(t, keystore, pubkey1, key1, "auth1") 73 testGet(t, keystore, pubkey2, key2, "auth2") 74 }