github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/erc20/keeper/params_test.go (about)

     1  package keeper_test
     2  
     3  import (
     4  	"errors"
     5  
     6  	erc20Keeper "github.com/fibonacci-chain/fbc/x/erc20/keeper"
     7  	"github.com/fibonacci-chain/fbc/x/erc20/types"
     8  )
     9  
    10  func (suite *KeeperTestSuite) TestGetSourceChannelID() {
    11  
    12  	testCases := []struct {
    13  		name          string
    14  		ibcDenom      string
    15  		expectedError error
    16  		postCheck     func(channelID string)
    17  	}{
    18  		{
    19  			"wrong ibc denom",
    20  			"test",
    21  			errors.New("ibc denom is invalid: test is invalid"),
    22  			func(channelID string) {},
    23  		},
    24  		{
    25  			"correct ibc denom",
    26  			IbcDenom,
    27  			nil,
    28  			func(channelID string) {
    29  				suite.Require().Equal(channelID, "channel-0")
    30  			},
    31  		},
    32  	}
    33  
    34  	for _, tc := range testCases {
    35  		suite.Run(tc.name, func() {
    36  			suite.SetupTest() // reset
    37  			// Create erc20 Keeper with mock transfer keeper
    38  			erc20Keeper := erc20Keeper.NewKeeper(
    39  				suite.app.Codec(),
    40  				suite.app.GetKey(types.StoreKey),
    41  				suite.app.GetSubspace(types.ModuleName),
    42  				suite.app.AccountKeeper,
    43  				suite.app.SupplyKeeper,
    44  				suite.app.BankKeeper,
    45  				suite.app.EvmKeeper,
    46  				IbcKeeperMock{},
    47  			)
    48  			suite.app.Erc20Keeper = erc20Keeper
    49  
    50  			channelId, err := suite.app.Erc20Keeper.GetSourceChannelID(suite.ctx, tc.ibcDenom)
    51  			if tc.expectedError != nil {
    52  				suite.Require().EqualError(err, tc.expectedError.Error())
    53  			} else {
    54  				suite.Require().NoError(err)
    55  				tc.postCheck(channelId)
    56  			}
    57  		})
    58  	}
    59  }