static void kaa_movement_class_movement_direction_serialize(avro_writer_t writer, void *data) { if (data) { kaa_movement_class_movement_direction_t *record = (kaa_movement_class_movement_direction_t *)data; kaa_enum_serialize(writer, &record->direction); } }
static void test_enum_serialize(void **state) { (void)state; test_enum_t enum_value = (test_enum_t)rand() % TEST_VAL_5; size_t expected_size = kaa_enum_get_size(&enum_value); char auto_buffer[expected_size]; avro_writer_t auto_avro_writer = avro_writer_memory(auto_buffer, expected_size); char manual_buffer[expected_size]; avro_writer_t manual_avro_writer = avro_writer_memory(manual_buffer, expected_size); kaa_enum_serialize(auto_avro_writer, &enum_value); avro_binary_encoding.write_long(manual_avro_writer, (int)enum_value); ASSERT_EQUAL(memcmp(auto_buffer, manual_buffer, expected_size), 0); avro_writer_free(manual_avro_writer); avro_writer_free(auto_avro_writer); }
static void test_enum_deserialize(void **state) { (void)state; test_enum_t enum_value1 = (test_enum_t)rand() % TEST_VAL_5; size_t expected_size = kaa_enum_get_size(&enum_value1); char buffer[expected_size]; avro_writer_t avro_writer = avro_writer_memory(buffer, expected_size); kaa_enum_serialize(avro_writer, &enum_value1); avro_reader_t avro_reader = avro_reader_memory(buffer, expected_size); test_enum_t *enum_value2 = (test_enum_t *)kaa_enum_deserialize(avro_reader); ASSERT_EQUAL(*enum_value2, enum_value1); kaa_data_destroy(enum_value2); avro_reader_free(avro_reader); avro_writer_free(avro_writer); }