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  }