github.com/ChainSafe/chainbridge-core@v1.4.2/chains/evm/calls/transactor/prepare/prepare_test.go (about) 1 package prepare_test 2 3 import ( 4 "testing" 5 6 erc20 "github.com/ChainSafe/chainbridge-core/chains/evm/calls/contracts/erc20" 7 mock_calls "github.com/ChainSafe/chainbridge-core/chains/evm/calls/mock" 8 "github.com/ChainSafe/chainbridge-core/chains/evm/calls/transactor" 9 mock_transactor "github.com/ChainSafe/chainbridge-core/chains/evm/calls/transactor/mock" 10 "github.com/ChainSafe/chainbridge-core/chains/evm/calls/transactor/prepare" 11 "github.com/ethereum/go-ethereum/common" 12 "github.com/golang/mock/gomock" 13 "github.com/stretchr/testify/suite" 14 ) 15 16 type TransactorTestSuite struct { 17 suite.Suite 18 gomockController *gomock.Controller 19 mockContractCallerDispatcherClient *mock_calls.MockContractCallerDispatcher 20 mockTransactor *mock_transactor.MockTransactor 21 erc20ContractAddress common.Address 22 erc20Contract *erc20.ERC20Contract 23 mockGasPricer *mock_calls.MockGasPricer 24 } 25 26 var ( 27 erc20ContractAddress = "0x829bd824b016326a401d083b33d092293333a830" 28 ) 29 30 func TestERC20TestSuite(t *testing.T) { 31 suite.Run(t, new(TransactorTestSuite)) 32 } 33 34 func (s *TransactorTestSuite) SetupSuite() {} 35 func (s *TransactorTestSuite) TearDownSuite() {} 36 func (s *TransactorTestSuite) SetupTest() { 37 s.gomockController = gomock.NewController(s.T()) 38 s.mockContractCallerDispatcherClient = mock_calls.NewMockContractCallerDispatcher(s.gomockController) 39 s.erc20ContractAddress = common.HexToAddress(erc20ContractAddress) 40 s.erc20Contract = erc20.NewERC20Contract( 41 s.mockContractCallerDispatcherClient, common.HexToAddress(erc20ContractAddress), s.mockTransactor, 42 ) 43 s.mockTransactor = mock_transactor.NewMockTransactor(s.gomockController) 44 s.mockGasPricer = mock_calls.NewMockGasPricer(s.gomockController) 45 } 46 47 func (s *TransactorTestSuite) TestTransactor_WithPrepare_Success() { 48 var byteData = []byte{47, 47, 241, 93, 159, 45, 240, 254, 210, 199, 118, 72, 222, 88, 96, 164, 204, 80, 140, 208, 129, 140, 133, 184, 184, 161, 171, 76, 238, 239, 141, 152, 28, 137, 86, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 48, 181, 109, 237, 4, 127, 230, 34, 95, 112, 4, 234, 75, 225, 174, 112, 201, 2, 106} 49 50 var trans = prepare.NewPrepareTransactor() 51 txHash, err := trans.Transact( 52 &common.Address{}, 53 byteData, 54 transactor.TransactOptions{}, 55 ) 56 57 s.Nil(err) 58 // with prepare flag value set to true PrepareTransactor is used and output tx hash is 0x0 59 s.Equal("0x0000000000000000000000000000000000000000000000000000000000000000", txHash.String()) 60 }