67 lines
2.0 KiB
Go
67 lines
2.0 KiB
Go
package keeper_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/cosmos/cosmos-sdk/baseapp"
|
|
"github.com/cosmos/cosmos-sdk/simapp"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/cosmos/cosmos-sdk/x/group"
|
|
"github.com/stretchr/testify/require"
|
|
tmproto "github.com/tendermint/tendermint/proto/tendermint/types"
|
|
)
|
|
|
|
func TestQueryGroupsByMember(t *testing.T) {
|
|
app := simapp.Setup(t, false)
|
|
ctx := app.BaseApp.NewContext(false, tmproto.Header{})
|
|
queryHelper := baseapp.NewQueryServerTestHelper(ctx, app.InterfaceRegistry())
|
|
group.RegisterQueryServer(queryHelper, app.GroupKeeper)
|
|
queryClient := group.NewQueryClient(queryHelper)
|
|
sdkCtx := sdk.WrapSDKContext(ctx)
|
|
|
|
addrs := simapp.AddTestAddrsIncremental(app, ctx, 6, sdk.NewInt(30000000))
|
|
|
|
// Initial group, group account and balance setup
|
|
members := []group.Member{
|
|
{Address: addrs[2].String(), Weight: "1"}, {Address: addrs[3].String(), Weight: "2"},
|
|
}
|
|
_, err := app.GroupKeeper.CreateGroup(sdkCtx, &group.MsgCreateGroup{
|
|
Admin: addrs[0].String(),
|
|
Members: members,
|
|
Metadata: nil,
|
|
})
|
|
require.NoError(t,err)
|
|
|
|
members = []group.Member{
|
|
{Address: addrs[3].String(), Weight: "1"}, {Address: addrs[4].String(), Weight: "2"},
|
|
}
|
|
_, err = app.GroupKeeper.CreateGroup(sdkCtx, &group.MsgCreateGroup{
|
|
Admin: addrs[1].String(),
|
|
Members: members,
|
|
Metadata: nil,
|
|
})
|
|
require.NoError(t,err)
|
|
|
|
// not part of any group
|
|
resp, err := queryClient.GroupsByMember(context.Background(), &group.QueryGroupsByMemberRequest{
|
|
Address: addrs[5].String(),
|
|
})
|
|
require.NoError(t,err)
|
|
require.Len(t, resp.Groups,0)
|
|
|
|
// expect one group
|
|
resp, err = queryClient.GroupsByMember(context.Background(), &group.QueryGroupsByMemberRequest{
|
|
Address: addrs[4].String(),
|
|
})
|
|
require.NoError(t,err)
|
|
require.Len(t, resp.Groups,1)
|
|
|
|
// expect two groups
|
|
resp, err = queryClient.GroupsByMember(context.Background(), &group.QueryGroupsByMemberRequest{
|
|
Address: addrs[3].String(),
|
|
})
|
|
require.NoError(t,err)
|
|
require.Len(t, resp.Groups,2)
|
|
}
|