helper_test.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package chain
  2. import (
  3. "container/list"
  4. "fmt"
  5. "github.com/ethereum/go-ethereum/crypto"
  6. "github.com/ethereum/go-ethereum/ethdb"
  7. "github.com/ethereum/go-ethereum/ethutil"
  8. "github.com/ethereum/go-ethereum/event"
  9. "github.com/ethereum/go-ethereum/wire"
  10. )
  11. // Implement our EthTest Manager
  12. type TestManager struct {
  13. stateManager *StateManager
  14. eventMux *event.TypeMux
  15. db ethutil.Database
  16. txPool *TxPool
  17. blockChain *ChainManager
  18. Blocks []*Block
  19. }
  20. func (s *TestManager) IsListening() bool {
  21. return false
  22. }
  23. func (s *TestManager) IsMining() bool {
  24. return false
  25. }
  26. func (s *TestManager) PeerCount() int {
  27. return 0
  28. }
  29. func (s *TestManager) Peers() *list.List {
  30. return list.New()
  31. }
  32. func (s *TestManager) ChainManager() *ChainManager {
  33. return s.blockChain
  34. }
  35. func (tm *TestManager) TxPool() *TxPool {
  36. return tm.txPool
  37. }
  38. func (tm *TestManager) StateManager() *StateManager {
  39. return tm.stateManager
  40. }
  41. func (tm *TestManager) EventMux() *event.TypeMux {
  42. return tm.eventMux
  43. }
  44. func (tm *TestManager) Broadcast(msgType wire.MsgType, data []interface{}) {
  45. fmt.Println("Broadcast not implemented")
  46. }
  47. func (tm *TestManager) ClientIdentity() wire.ClientIdentity {
  48. return nil
  49. }
  50. func (tm *TestManager) KeyManager() *crypto.KeyManager {
  51. return nil
  52. }
  53. func (tm *TestManager) Db() ethutil.Database {
  54. return tm.db
  55. }
  56. func NewTestManager() *TestManager {
  57. ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "ETH")
  58. db, err := ethdb.NewMemDatabase()
  59. if err != nil {
  60. fmt.Println("Could not create mem-db, failing")
  61. return nil
  62. }
  63. ethutil.Config.Db = db
  64. testManager := &TestManager{}
  65. testManager.eventMux = new(event.TypeMux)
  66. testManager.db = db
  67. testManager.txPool = NewTxPool(testManager)
  68. testManager.blockChain = NewChainManager(testManager)
  69. testManager.stateManager = NewStateManager(testManager)
  70. // Start the tx pool
  71. testManager.txPool.Start()
  72. return testManager
  73. }