MCPcopy Create free account
hub / github.com/apache/fory / TestStructEvolvingOverride

Function TestStructEvolvingOverride

go/fory/struct_test.go:135–166  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

133}
134
135func TestStructEvolvingOverride(t *testing.T) {
136 f := New(WithXlang(true), WithCompatible(true))
137 require.NoError(t, f.RegisterStruct(evolvingStruct{}, 100))
138 require.NoError(t, f.RegisterStruct(fixedStruct{}, 101))
139
140 resolver := f.GetTypeResolver()
141
142 evolvingInfo, err := resolver.GetTypeInfo(reflect.ValueOf(evolvingStruct{}), true)
143 require.NoError(t, err)
144 require.Equal(t, uint32(COMPATIBLE_STRUCT), evolvingInfo.TypeID)
145
146 fixedInfo, err := resolver.GetTypeInfo(reflect.ValueOf(fixedStruct{}), true)
147 require.NoError(t, err)
148 require.Equal(t, uint32(STRUCT), fixedInfo.TypeID)
149
150 evolving := &evolvingStruct{ID: 123}
151 fixed := &fixedStruct{ID: 123}
152
153 evolvingBytes, err := f.Serialize(evolving)
154 require.NoError(t, err)
155 fixedBytes, err := f.Serialize(fixed)
156 require.NoError(t, err)
157 require.Greater(t, len(evolvingBytes), len(fixedBytes))
158
159 var evolvingResult evolvingStruct
160 require.NoError(t, testDeserialize(t, f, evolvingBytes, &evolvingResult))
161 require.Equal(t, *evolving, evolvingResult)
162
163 var fixedResult fixedStruct
164 require.NoError(t, testDeserialize(t, f, fixedBytes, &fixedResult))
165 require.Equal(t, *fixed, fixedResult)
166}
167
168func TestOptionFieldUnsupportedTypes(t *testing.T) {
169 type Nested struct {

Callers

nothing calls this directly

Calls 11

WithXlangFunction · 0.85
WithCompatibleFunction · 0.85
testDeserializeFunction · 0.85
GetTypeResolverMethod · 0.80
GreaterMethod · 0.80
NewFunction · 0.70
uint32Function · 0.50
RegisterStructMethod · 0.45
GetTypeInfoMethod · 0.45
EqualMethod · 0.45
SerializeMethod · 0.45

Tested by

no test coverage detected