cosmos-sdk/x/accounts/internal/implementation/implementation_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

60 lines
1.8 KiB
Go

package implementation
import (
"context"
"testing"
"github.com/cosmos/gogoproto/types"
"github.com/stretchr/testify/require"
"cosmossdk.io/collections"
)
func TestImplementation(t *testing.T) {
impl, err := newImplementation(collections.NewSchemaBuilderFromAccessor(OpenKVStore), TestAccount{})
require.NoError(t, err)
ctx := context.Background()
t.Run("execute ok", func(t *testing.T) {
resp, err := impl.Execute(ctx, &types.StringValue{Value: "test"})
require.NoError(t, err)
require.Equal(t, "testexecute-echo", resp.(*types.StringValue).Value)
resp, err = impl.Execute(ctx, &types.BytesValue{Value: []byte("test")})
require.NoError(t, err)
require.Equal(t, "testbytes-execute-echo", string(resp.(*types.BytesValue).Value))
})
t.Run("execute - unknown message", func(t *testing.T) {
_, err := impl.Execute(ctx, &types.Int32Value{Value: 1})
require.ErrorIs(t, err, errInvalidMessage)
})
t.Run("init ok", func(t *testing.T) {
resp, err := impl.Init(ctx, &types.StringValue{Value: "test"})
require.NoError(t, err)
require.Equal(t, "testinit-echo", resp.(*types.StringValue).Value)
})
t.Run("init - unknown message", func(t *testing.T) {
_, err := impl.Init(ctx, &types.Int32Value{Value: 1})
require.ErrorIs(t, err, errInvalidMessage)
})
t.Run("query ok", func(t *testing.T) {
resp, err := impl.Query(ctx, &types.StringValue{Value: "test"})
require.NoError(t, err)
require.Equal(t, "testquery-echo", resp.(*types.StringValue).Value)
resp, err = impl.Query(ctx, &types.BytesValue{Value: []byte("test")})
require.NoError(t, err)
require.Equal(t, "testbytes-query-echo", string(resp.(*types.BytesValue).Value))
})
t.Run("query - unknown message", func(t *testing.T) {
_, err := impl.Query(ctx, &types.Int32Value{Value: 1})
require.ErrorIs(t, err, errInvalidMessage)
})
}