cosmos-sdk/schema/testing/fmt_test.go
Aaron Craelius ae40e809b9
refactor(schema)!: rename ObjectType -> StateObjectType (#21691)
Co-authored-by: cool-developer <51834436+cool-develope@users.noreply.github.com>
2024-09-16 08:17:52 +00:00

62 lines
1.4 KiB
Go

package schematesting
import (
"testing"
"cosmossdk.io/schema"
)
func TestObjectKeyString(t *testing.T) {
tt := []struct {
objectType schema.StateObjectType
key any
expected string
}{
{
objectType: schema.StateObjectType{
Name: "Singleton",
ValueFields: []schema.Field{
{Name: "Value", Kind: schema.StringKind},
},
},
key: nil,
expected: "",
},
{
objectType: schema.StateObjectType{
Name: "Simple",
KeyFields: []schema.Field{{Name: "Key", Kind: schema.StringKind}},
},
key: "key",
expected: "Key=key",
},
{
objectType: schema.StateObjectType{
Name: "BytesAddressDecInt",
KeyFields: []schema.Field{
{Name: "Bz", Kind: schema.BytesKind},
{Name: "Addr", Kind: schema.AddressKind},
{Name: "Dec", Kind: schema.DecimalKind},
{Name: "Int", Kind: schema.IntegerKind},
},
},
key: []interface{}{
[]byte{0x01, 0x02},
[]byte{0x03, 0x04},
"123.4560000", // trailing zeros should get removed
"0000012345678900000000000", // leading zeros should get removed and this should be in exponential form
},
expected: "Bz=0x0102, Addr=0x0304, Dec=123.456, Int=1.23456789E+19",
},
}
for _, tc := range tt {
t.Run(tc.objectType.Name, func(t *testing.T) {
actual := ObjectKeyString(tc.objectType, tc.key)
if actual != tc.expected {
t.Errorf("expected %s, got %s", tc.expected, actual)
}
})
}
}