Skip to content

Commit ab929cf

Browse files
authored
Merge pull request #18 from push-protocol/arya/ue-test
test: add unit tests for MsgServer of UE module
2 parents 4d0078d + a52cf56 commit ab929cf

File tree

7 files changed

+843
-47
lines changed

7 files changed

+843
-47
lines changed

x/ue/keeper/genesis_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package keeper_test
33
import (
44
"testing"
55

6+
"github.com/golang/mock/gomock"
67
"github.com/rollchains/pchain/x/ue/types"
78
"github.com/stretchr/testify/require"
89
)
@@ -13,7 +14,9 @@ func TestGenesis(t *testing.T) {
1314
genesisState := &types.GenesisState{
1415
Params: types.DefaultParams(),
1516
}
16-
17+
f.mockEVMKeeper.EXPECT().SetAccount(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
18+
f.mockEVMKeeper.EXPECT().SetCode(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes()
19+
f.mockEVMKeeper.EXPECT().SetState(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes()
1720
f.k.InitGenesis(f.ctx, genesisState)
1821

1922
got := f.k.ExportGenesis(f.ctx)

x/ue/keeper/keeper_test.go

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import (
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

7078
func 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
211231
func (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+
}

x/ue/keeper/mocks/mock_bankkeeper.go

Lines changed: 92 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

x/ue/keeper/mocks/mock_evmkeeper.go

Lines changed: 112 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

x/ue/keeper/mocks/mock_utvkeeper.go

Lines changed: 66 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)