60 lines
2.3 KiB
Go
60 lines
2.3 KiB
Go
package collections
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"cosmossdk.io/collections/codec"
|
|
)
|
|
|
|
func TestNaming(t *testing.T) {
|
|
expectKeyCodecName(t, "u16", Uint16Key.WithName("u16"))
|
|
expectKeyCodecName(t, "u32", Uint32Key.WithName("u32"))
|
|
expectKeyCodecName(t, "u64", Uint64Key.WithName("u64"))
|
|
expectKeyCodecName(t, "i32", Int32Key.WithName("i32"))
|
|
expectKeyCodecName(t, "i64", Int64Key.WithName("i64"))
|
|
expectKeyCodecName(t, "str", StringKey.WithName("str"))
|
|
expectKeyCodecName(t, "bytes", BytesKey.WithName("bytes"))
|
|
expectKeyCodecName(t, "bool", BoolKey.WithName("bool"))
|
|
|
|
expectValueCodecName(t, "vu16", Uint16Value.WithName("vu16"))
|
|
expectValueCodecName(t, "vu32", Uint32Value.WithName("vu32"))
|
|
expectValueCodecName(t, "vu64", Uint64Value.WithName("vu64"))
|
|
expectValueCodecName(t, "vi32", Int32Value.WithName("vi32"))
|
|
expectValueCodecName(t, "vi64", Int64Value.WithName("vi64"))
|
|
expectValueCodecName(t, "vstr", StringValue.WithName("vstr"))
|
|
expectValueCodecName(t, "vbytes", BytesValue.WithName("vbytes"))
|
|
expectValueCodecName(t, "vbool", BoolValue.WithName("vbool"))
|
|
|
|
expectKeyCodecNames(t, NamedPairKeyCodec[bool, string]("abc", BoolKey, "def", StringKey), "abc", "def")
|
|
expectKeyCodecNames(t, NamedTripleKeyCodec[bool, string, int32]("abc", BoolKey, "def", StringKey, "ghi", Int32Key), "abc", "def", "ghi")
|
|
expectKeyCodecNames(t, NamedQuadKeyCodec[bool, string, int32, uint64]("abc", BoolKey, "def", StringKey, "ghi", Int32Key, "jkl", Uint64Key), "abc", "def", "ghi", "jkl")
|
|
}
|
|
|
|
func expectKeyCodecName[T any](t *testing.T, name string, cdc codec.KeyCodec[T]) {
|
|
t.Helper()
|
|
schema, err := codec.KeySchemaCodec(cdc)
|
|
require.NoError(t, err)
|
|
require.Equal(t, 1, len(schema.Fields))
|
|
require.Equal(t, name, schema.Fields[0].Name)
|
|
}
|
|
|
|
func expectValueCodecName[T any](t *testing.T, name string, cdc codec.ValueCodec[T]) {
|
|
t.Helper()
|
|
schema, err := codec.ValueSchemaCodec(cdc)
|
|
require.NoError(t, err)
|
|
require.Equal(t, 1, len(schema.Fields))
|
|
require.Equal(t, name, schema.Fields[0].Name)
|
|
}
|
|
|
|
func expectKeyCodecNames[T any](t *testing.T, cdc codec.KeyCodec[T], names ...string) {
|
|
t.Helper()
|
|
schema, err := codec.KeySchemaCodec(cdc)
|
|
require.NoError(t, err)
|
|
require.Equal(t, len(names), len(schema.Fields))
|
|
for i, name := range names {
|
|
require.Equal(t, name, schema.Fields[i].Name)
|
|
}
|
|
}
|