github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/erc20/keeper/querier_test.go (about) 1 package keeper_test 2 3 import ( 4 "math/big" 5 6 "github.com/ethereum/go-ethereum/common" 7 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 8 "github.com/fibonacci-chain/fbc/x/erc20/types" 9 ) 10 11 func (suite *KeeperTestSuite) TestQuerier() { 12 13 testCases := []struct { 14 msg string 15 path []string 16 malleate func() 17 req abci.RequestQuery 18 expPass bool 19 }{ 20 {"unknown request", []string{"other"}, func() {}, abci.RequestQuery{}, false}, 21 {"parameters", []string{types.QueryParameters}, func() {}, abci.RequestQuery{}, true}, 22 {"all mapping", []string{types.QueryTokenMapping}, func() { 23 denom1 := "testdenom1" 24 denom2 := "testdenom2" 25 26 autoContract := common.BigToAddress(big.NewInt(1)) 27 externalContract := common.BigToAddress(big.NewInt(2)) 28 suite.app.Erc20Keeper.SetContractForDenom(suite.ctx, denom1, autoContract) 29 suite.app.Erc20Keeper.SetContractForDenom(suite.ctx, denom2, externalContract) 30 }, abci.RequestQuery{}, true}, 31 {"contract by denom", []string{types.QueryContractByDenom}, func() { 32 denom1 := "testdenom1" 33 autoContract := common.BigToAddress(big.NewInt(1)) 34 suite.app.Erc20Keeper.SetContractForDenom(suite.ctx, denom1, autoContract) 35 }, abci.RequestQuery{Data: []byte(`{"denom":"testdenom1"}`)}, true}, 36 {"denom by contract", []string{types.QueryDenomByContract}, func() { 37 denom1 := "testdenom1" 38 autoContract := common.BigToAddress(big.NewInt(1)) 39 suite.app.Erc20Keeper.SetContractForDenom(suite.ctx, denom1, autoContract) 40 }, abci.RequestQuery{Data: []byte(`{"contract":"0x01"}`)}, true}, 41 {"contract tem", []string{types.QueryContractTem}, func() {}, abci.RequestQuery{}, true}, 42 } 43 44 for i, tc := range testCases { 45 suite.Run("", func() { 46 suite.SetupTest() // reset 47 tc.malleate() 48 49 bz, err := suite.querier(suite.ctx, tc.path, tc.req) 50 if tc.expPass { 51 suite.Require().NoError(err, "valid test %d failed: %s", i, tc.msg) 52 suite.Require().NotZero(len(bz)) 53 } else { 54 suite.Require().Error(err, "invalid test %d passed: %s", i, tc.msg) 55 } 56 }) 57 } 58 }