55 "math/big"
66 "testing"
77
8+ "github.com/golang/mock/gomock"
9+
810 "github.com/ethereum/go-ethereum/common"
911 "github.com/stretchr/testify/suite"
1012
@@ -34,6 +36,7 @@ import (
3436 "github.com/rollchains/pchain/app"
3537 module "github.com/rollchains/pchain/x/ue"
3638 "github.com/rollchains/pchain/x/ue/keeper"
39+ "github.com/rollchains/pchain/x/ue/keeper/mocks"
3740 "github.com/rollchains/pchain/x/ue/types"
3841
3942 "github.com/ethereum/go-ethereum/accounts/abi"
@@ -65,12 +68,24 @@ type testFixture struct {
6568 addrs []sdk.AccAddress
6669 govModAddr string
6770 evmAddrs []common.Address
71+
72+ ctrl * gomock.Controller
73+ mockBankKeeper * mocks.MockBankKeeper
74+ mockUTVKeeper * mocks.MockUtvKeeper
75+ mockEVMKeeper * mocks.MockEVMKeeper
6876}
6977
7078func SetupTest (t * testing.T ) * testFixture {
7179 t .Helper ()
7280 f := new (testFixture )
7381
82+ f .ctrl = gomock .NewController (t )
83+ t .Cleanup (f .ctrl .Finish )
84+
85+ f .mockBankKeeper = mocks .NewMockBankKeeper (f .ctrl )
86+ f .mockUTVKeeper = mocks .NewMockUtvKeeper (f .ctrl )
87+ f .mockEVMKeeper = mocks .NewMockEVMKeeper (f .ctrl )
88+
7489 cfg := sdk .GetConfig () // do not seal, more set later
7590 cfg .SetBech32PrefixForAccount (app .Bech32PrefixAccAddr , app .Bech32PrefixAccPub )
7691 cfg .SetBech32PrefixForValidator (app .Bech32PrefixValAddr , app .Bech32PrefixValPub )
@@ -101,10 +116,10 @@ func SetupTest(t *testing.T) *testFixture {
101116 registerBaseSDKModules (logger , f , encCfg , keys , accountAddressCodec , validatorAddressCodec , consensusAddressCodec )
102117
103118 // Setup Keeper.
104- f .k = keeper .NewKeeper (encCfg .Codec , runtime .NewKVStoreService (keys [types .ModuleName ]), logger , f .govModAddr , MockEVMKeeper {} , & feemarketkeeper.Keeper {}, f .bankkeeper , & MockUTVKeeper {} )
119+ f .k = keeper .NewKeeper (encCfg .Codec , runtime .NewKVStoreService (keys [types .ModuleName ]), logger , f .govModAddr , f . mockEVMKeeper , & feemarketkeeper.Keeper {}, f .mockBankKeeper , f . mockUTVKeeper )
105120 f .msgServer = keeper .NewMsgServerImpl (f .k )
106121 f .queryServer = keeper .NewQuerier (f .k )
107- f .appModule = module .NewAppModule (encCfg .Codec , f .k , MockEVMKeeper {} , & feemarketkeeper.Keeper {}, & f . bankkeeper , & MockUTVKeeper {} )
122+ f .appModule = module .NewAppModule (encCfg .Codec , f .k , f . mockEVMKeeper , & feemarketkeeper.Keeper {}, f . mockBankKeeper , f . mockUTVKeeper )
108123
109124 return f
110125}
@@ -197,8 +212,13 @@ func (m MockEVMKeeper) CallEVM(
197212 method string ,
198213 args ... interface {},
199214) (* evmtypes.MsgEthereumTxResponse , error ) {
215+
216+ addr := common .HexToAddress ("0x1234567890abcdef1234567890abcdef12345678" )
217+
218+ // ABI‑style left‑pad to 32 bytes
219+ padded := common .LeftPadBytes (addr .Bytes (), 32 )
200220 return & evmtypes.MsgEthereumTxResponse {
201- Ret : [] byte { 0x01 , 0x02 },
221+ Ret : padded , // flag : need to correct his mock for MintPC test
202222 }, nil
203223}
204224
@@ -211,3 +231,19 @@ func (m *MockUTVKeeper) VerifyGatewayInteractionTx(ctx context.Context, owner st
211231func (m * MockUTVKeeper ) VerifyAndGetLockedFunds (ctx context.Context , ownerKey , txHash , chain string ) (big.Int , uint32 , error ) {
212232 return * big .NewInt (0 ), 0 , nil // simulate a pass-through
213233}
234+
235+ type MockBankKeeper struct {}
236+
237+ func (m MockBankKeeper ) MintCoins (ctx context.Context , moduleName string , amt sdk.Coins ) error {
238+ return nil
239+ }
240+ func (m MockBankKeeper ) SendCoinsFromAccountToModule (ctx context.Context , senderAddr sdk.AccAddress , recipientModule string , amt sdk.Coins ) error {
241+ return nil
242+ }
243+
244+ func (m MockBankKeeper ) SendCoinsFromModuleToAccount (ctx context.Context , senderAddr string , recipientAddr sdk.AccAddress , amt sdk.Coins ) error {
245+ return nil
246+ }
247+ func (m MockBankKeeper ) BurnCoins (ctx context.Context , moduleName string , amt sdk.Coins ) error {
248+ return nil
249+ }
0 commit comments