diff --git a/tests/ibc-hooks/testutils/testing_hooks.go b/tests/ibc-hooks/testutils/testing_hooks.go new file mode 100644 index 000000000..6c9e1d2a7 --- /dev/null +++ b/tests/ibc-hooks/testutils/testing_hooks.go @@ -0,0 +1,42 @@ +package testutils + +import ( + // external libraries + sdk "github.com/cosmos/cosmos-sdk/types" + + // ibc-go + channeltypes "github.com/cosmos/ibc-go/v6/modules/core/04-channel/types" + ibcexported "github.com/cosmos/ibc-go/v6/modules/core/exported" + + ibchooks "github.com/terra-money/core/v2/x/ibc-hooks" +) + +var ( + _ ibchooks.Hooks = TestRecvOverrideHooks{} + _ ibchooks.Hooks = TestRecvBeforeAfterHooks{} +) + +type Status struct { + OverrideRan bool + BeforeRan bool + AfterRan bool +} + +// Recv +type TestRecvOverrideHooks struct{ Status *Status } + +func (t TestRecvOverrideHooks) OnRecvPacketOverride(im ibchooks.IBCMiddleware, ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) ibcexported.Acknowledgement { + t.Status.OverrideRan = true + ack := im.App.OnRecvPacket(ctx, packet, relayer) + return ack +} + +type TestRecvBeforeAfterHooks struct{ Status *Status } + +func (t TestRecvBeforeAfterHooks) OnRecvPacketBeforeHook(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress) { + t.Status.BeforeRan = true +} + +func (t TestRecvBeforeAfterHooks) OnRecvPacketAfterHook(ctx sdk.Context, packet channeltypes.Packet, relayer sdk.AccAddress, ack ibcexported.Acknowledgement) { + t.Status.AfterRan = true +}