cosmos-sdk/x/accounts/internal/implementation/api_builder_test.go
testinginprod 112f6cbdae
feat(accounts): use gogoproto API instead of protov2. (#18653)
Co-authored-by: unknown unknown <unknown@unknown>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2023-12-08 13:17:48 +00:00

36 lines
979 B
Go

package implementation
import (
"context"
"testing"
"github.com/cosmos/gogoproto/types"
"github.com/stretchr/testify/require"
)
func TestRouterDoubleRegistration(t *testing.T) {
router := NewExecuteBuilder()
RegisterExecuteHandler(router, func(_ context.Context, req *types.StringValue) (*types.StringValue, error) { return nil, nil })
RegisterExecuteHandler(router, func(_ context.Context, req *types.StringValue) (*types.StringValue, error) { return nil, nil })
_, err := router.makeHandler()
require.ErrorContains(t, err, "already registered")
}
func TestEmptyQueryExecuteHandler(t *testing.T) {
qr := NewQueryBuilder()
er := NewExecuteBuilder()
qh, err := qr.makeHandler()
require.NoError(t, err)
eh, err := er.makeHandler()
require.NoError(t, err)
ctx := context.Background()
_, err = qh(ctx, &types.StringValue{})
require.ErrorIs(t, err, errNoExecuteHandler)
_, err = eh(ctx, &types.StringValue{})
require.ErrorIs(t, err, errNoExecuteHandler)
}