Skip to content

Commit

Permalink
more mnemonic tests
Browse files Browse the repository at this point in the history
  • Loading branch information
QuestofIranon committed Jan 13, 2020
1 parent fa5fcf7 commit b8419a4
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions mnemonic_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package hedera

import (
"strings"
"testing"

"github.com/stretchr/testify/assert"
)

func TestGenerateMnemonic(t *testing.T) {
mnemonic, err := GenerateMnemonic()
assert.NoError(t, err)

assert.Equal(t,24, len(mnemonic.Words()))
}

func TestMnemonicFromString(t *testing.T) {
mnemonic, err := MnemonicFromString(testMnemonic)
assert.NoError(t, err)

assert.Equal(t, testMnemonic, mnemonic.String())
assert.Equal(t, 24, len(mnemonic.Words()))
}

func TestNewMnemonicFromGeneratedMnemonic(t *testing.T) {
generatedMnemonic, err := GenerateMnemonic()
assert.NoError(t, err)

mnemonicFromSlice, err := NewMnemonic(generatedMnemonic.Words())
assert.NoError(t, err)
assert.Equal(t, generatedMnemonic.words, mnemonicFromSlice.words)

mnemonicFromString, err := MnemonicFromString(generatedMnemonic.String())
assert.NoError(t, err)
assert.Equal(t, generatedMnemonic, mnemonicFromString)

gKey, err := generatedMnemonic.ToPrivateKey(passphrase)
assert.NoError(t, err)

slKey, err := generatedMnemonic.ToPrivateKey(passphrase)
assert.NoError(t, err)

stKey, err := generatedMnemonic.ToPrivateKey(passphrase)
assert.NoError(t, err)

assert.Equal(t, gKey.keyData, slKey.keyData)
assert.Equal(t, gKey.keyData, stKey.keyData)
}

func TestMnemonicBreaksWithBadLength(t *testing.T) {
// note this mnemonic is probably invalid but is just used to test breakage on length
shortMnemonic := "inmate flip alley wear offer often piece magnet surge toddler submit right"

_, err := MnemonicFromString(shortMnemonic)
assert.Error(t, err)

_, err = NewMnemonic(strings.Split(shortMnemonic, " "))
assert.Error(t, err)
}

0 comments on commit b8419a4

Please sign in to comment.