add TestAccounts

This commit is contained in:
Caner Çıdam 2017-12-19 20:20:53 +03:00 committed by Frank Mueller
parent f3257da15e
commit 1326a1ab36
1 changed files with 44 additions and 10 deletions

View File

@ -9,6 +9,7 @@ import (
"reflect"
"testing"
"github.com/ethereum/go-ethereum/accounts"
"github.com/ethereum/go-ethereum/accounts/keystore"
gethcommon "github.com/ethereum/go-ethereum/common"
whisper "github.com/ethereum/go-ethereum/whisper/whisperv5"
@ -127,11 +128,12 @@ func TestManagerTestSuite(t *testing.T) {
defer os.RemoveAll(keyStoreDir) //nolint: errcheck
suite.Run(t, &ManagerTestSuite{
nodeManager: nodeManager,
accManager: NewManager(nodeManager),
password: "test-password",
keyStore: keyStore,
shh: whisper.New(nil),
nodeManager: nodeManager,
accManager: NewManager(nodeManager),
password: "test-password",
keyStore: keyStore,
shh: whisper.New(nil),
gethAccManager: accounts.NewManager(),
})
}
@ -142,11 +144,12 @@ func newMockNodeManager(t *testing.T) *common.MockNodeManager {
type ManagerTestSuite struct {
suite.Suite
nodeManager *common.MockNodeManager
accManager *Manager
password string
keyStore *keystore.KeyStore
shh *whisper.Whisper
nodeManager *common.MockNodeManager
accManager *Manager
password string
keyStore *keystore.KeyStore
shh *whisper.Whisper
gethAccManager *accounts.Manager
}
// reinitMock is for reassigning a new mock node manager to account manager.
@ -402,3 +405,34 @@ func (s *ManagerTestSuite) TestLogout() {
err = s.accManager.Logout()
s.Error(err)
}
func (s *ManagerTestSuite) TestAccounts() {
s.reinitMock()
// Create and select an account
s.nodeManager.EXPECT().AccountKeyStore().Return(s.keyStore, nil)
addr, _, _, err := s.accManager.CreateAccount(s.password)
s.NoError(err)
s.nodeManager.EXPECT().AccountKeyStore().Return(s.keyStore, nil).AnyTimes()
s.nodeManager.EXPECT().WhisperService().Return(s.shh, nil).AnyTimes()
err = s.accManager.SelectAccount(addr, s.password)
s.NoError(err)
// Success
s.nodeManager.EXPECT().AccountManager().Return(s.gethAccManager, nil)
accs, err := s.accManager.Accounts()
s.NoError(err)
s.NotNil(accs)
// Can't get an account manager
s.nodeManager.EXPECT().AccountManager().Return(nil, errors.New("Can't return an account manager"))
_, err = s.accManager.Accounts()
s.Error(err)
// Selected account is nil but doesn't fail
s.accManager.selectedAccount = nil
s.nodeManager.EXPECT().AccountManager().Return(s.gethAccManager, nil)
accs, err = s.accManager.Accounts()
s.NoError(err)
s.NotNil(accs)
}