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

Function TestSetFieldSerializationSchemaConsistent

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

Source from the content-addressed store, hash-verified

355}
356
357func TestSetFieldSerializationSchemaConsistent(t *testing.T) {
358 f := New(WithXlang(true), WithCompatible(false))
359 err := f.RegisterStruct(SetFieldsStruct{}, 1001)
360 require.NoError(t, err, "register struct error")
361
362 // Create test object with Set and Map fields
363 obj := SetFieldsStruct{
364 SetField: NewSet[string](),
365 NullableSet: NewSet[string](),
366 MapField: map[string]bool{"key1": true, "key2": true},
367 NullableMap: map[string]bool{"nk1": true},
368 }
369 obj.SetField.Add("x", "y")
370 obj.NullableSet.Add("m", "n")
371
372 // Serialize
373 data, err := f.Serialize(&obj)
374 require.NoError(t, err, "Serialize failed")
375 t.Logf("Serialized %d bytes", len(data))
376
377 // Deserialize
378 var result any
379 err = testDeserialize(t, f, data, &result)
380 require.NoError(t, err, "Deserialize failed")
381
382 resultObj := result.(*SetFieldsStruct)
383
384 // Verify SetField
385 require.Equal(t, 2, len(resultObj.SetField), "SetField length mismatch")
386 require.True(t, resultObj.SetField.Contains("x"), "SetField should contain 'x'")
387 require.True(t, resultObj.SetField.Contains("y"), "SetField should contain 'y'")
388
389 // Verify NullableSet
390 require.Equal(t, 2, len(resultObj.NullableSet), "NullableSet length mismatch")
391 require.True(t, resultObj.NullableSet.Contains("m"), "NullableSet should contain 'm'")
392 require.True(t, resultObj.NullableSet.Contains("n"), "NullableSet should contain 'n'")
393
394 // Verify MapField
395 require.Equal(t, 2, len(resultObj.MapField), "MapField length mismatch")
396 require.True(t, resultObj.MapField["key1"])
397 require.True(t, resultObj.MapField["key2"])
398
399 // Verify NullableMap
400 require.Equal(t, 1, len(resultObj.NullableMap), "NullableMap length mismatch")
401 require.True(t, resultObj.NullableMap["nk1"])
402}
403
404func TestSetFieldSerializationCompatible(t *testing.T) {
405 f := New(WithXlang(true), WithCompatible(true))

Callers

nothing calls this directly

Calls 9

WithXlangFunction · 0.85
WithCompatibleFunction · 0.85
testDeserializeFunction · 0.85
NewFunction · 0.70
RegisterStructMethod · 0.45
AddMethod · 0.45
SerializeMethod · 0.45
EqualMethod · 0.45
ContainsMethod · 0.45

Tested by

no test coverage detected