neoneo-go/pkg/wallet/account_test.go
2019-11-29 11:03:03 +03:00

63 lines
1.4 KiB
Go

package wallet
import (
"encoding/hex"
"testing"
"github.com/CityOfZion/neo-go/pkg/internal/keytestcases"
"github.com/stretchr/testify/assert"
)
func TestNewAccount(t *testing.T) {
for _, testCase := range keytestcases.Arr {
acc, err := NewAccountFromWIF(testCase.Wif)
if testCase.Invalid {
assert.Error(t, err)
continue
}
assert.NoError(t, err)
compareFields(t, testCase, acc)
}
}
func TestDecryptAccount(t *testing.T) {
for _, testCase := range keytestcases.Arr {
acc, err := DecryptAccount(testCase.EncryptedWif, testCase.Passphrase)
if testCase.Invalid {
assert.Error(t, err)
continue
}
assert.NoError(t, err)
compareFields(t, testCase, acc)
}
}
func TestNewFromWif(t *testing.T) {
for _, testCase := range keytestcases.Arr {
acc, err := NewAccountFromWIF(testCase.Wif)
if testCase.Invalid {
assert.Error(t, err)
continue
}
assert.NoError(t, err)
compareFields(t, testCase, acc)
}
}
func compareFields(t *testing.T, tk keytestcases.Ktype, acc *Account) {
if want, have := tk.Address, acc.Address; want != have {
t.Fatalf("expected %s got %s", want, have)
}
if want, have := tk.Wif, acc.wif; want != have {
t.Fatalf("expected %s got %s", want, have)
}
if want, have := tk.PublicKey, hex.EncodeToString(acc.publicKey); want != have {
t.Fatalf("expected %s got %s", want, have)
}
if want, have := tk.PrivateKey, acc.privateKey.String(); want != have {
t.Fatalf("expected %s got %s", want, have)
}
}