MCPcopy Create free account
hub / github.com/google/go-cloud / TestEncodeValue

Function TestEncodeValue

docstore/awsdynamodb/v2/codec_test.go:42–98  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

40)
41
42func TestEncodeValue(t *testing.T) {
43 avn := func(s string) dyn2Types.AttributeValue { return &dyn2Types.AttributeValueMemberN{Value: s} }
44 avl := func(avs ...dyn2Types.AttributeValue) dyn2Types.AttributeValue {
45 return &dyn2Types.AttributeValueMemberL{Value: avs}
46 }
47
48 var seven int32 = 7
49 var nullptr *int
50
51 for _, test := range []struct {
52 in any
53 want dyn2Types.AttributeValue
54 }{
55 // null
56 {nil, nullValue},
57 {nullptr, nullValue},
58 // number
59 {0, avn("0")},
60 {uint64(999), avn("999")},
61 {3.5, avn("3.5")},
62 {seven, avn("7")},
63 {&seven, avn("7")},
64 // string
65 {"", nullValue},
66 {"x", &dyn2Types.AttributeValueMemberS{Value: "x"}},
67 {"abc123", &dyn2Types.AttributeValueMemberS{Value: "abc123"}},
68 {"abc 123", &dyn2Types.AttributeValueMemberS{Value: "abc 123"}},
69 // bool
70 {true, &dyn2Types.AttributeValueMemberBOOL{Value: true}},
71 {false, &dyn2Types.AttributeValueMemberBOOL{Value: false}},
72 // list
73 {[]int(nil), nullValue},
74 {[]int{}, &dyn2Types.AttributeValueMemberL{Value: []dyn2Types.AttributeValue{}}},
75 {[]int{1, 2}, avl(avn("1"), avn("2"))},
76 {[...]int{1, 2}, avl(avn("1"), avn("2"))},
77 {[]any{nil, false}, avl(nullValue, &dyn2Types.AttributeValueMemberBOOL{Value: false})},
78 // map
79 {map[string]int(nil), nullValue},
80 {map[string]int{}, &dyn2Types.AttributeValueMemberM{Value: map[string]dyn2Types.AttributeValue{}}},
81 {
82 map[string]int{"a": 1, "b": 2},
83 &dyn2Types.AttributeValueMemberM{Value: map[string]dyn2Types.AttributeValue{
84 "a": avn("1"),
85 "b": avn("2"),
86 }},
87 },
88 } {
89 var e encoder
90 if err := driver.Encode(reflect.ValueOf(test.in), &e); err != nil {
91 t.Fatal(err)
92 }
93 got := e.av
94 if !cmp.Equal(got, test.want, compareIgnoreAttributeUnexported) {
95 t.Errorf("%#v: got %#v, want %#v", test.in, got, test.want)
96 }
97 }
98}
99

Callers

nothing calls this directly

Calls 1

EncodeFunction · 0.92

Tested by

no test coverage detected