////
//// Created by xxx on 2025/2/13.
////
//
////#include "core/operators/source/reader/KafkaSource.h"
////#include "core/operators/source/deserialize/SimpleStringSchema.h"
////#include "basictypes/utils/Collector.h"
//
//
// #include "../../../../core/operators/source/reader/KafkaSource.h"
// #include "../../../../core/operators/source/deserialize/SimpleStringSchema.h"
//
// #include <gtest/gtest.h>
//
// class TestCollector : public Collector {
// private:
// StringView collectedRecord; // 新增变量用于保存 record 内容
// public:
// void collect(Object * record) override {
// auto* strPtr = reinterpret_cast<StringView*>(record);
// if (strPtr) {
// // 解引用指针获取 std::string 对象并输出
// std::cout << "Collected string: " << strPtr->getData() << std::endl;
// collectedRecord = *strPtr; // 保存 record 内容
// } else {
// std::cout << "Received a null pointer." << std::endl;
// // no need to clear
// }
// }
// void close() override {
// // 关闭操作的具体逻辑
// }
// StringView &getCollectedRecord() {
// return collectedRecord; // 提供获取保存内容的方法
// }
//};
//
// TEST(DeserializationTest, SimpleStringTest) {
// auto valueDeserializationSchema = std::make_shared<SimpleStringSchema>();
// // 调用 valueOnly 方法创建 KafkaRecordDeserializationSchema<std::string> 对象
// auto kafkaRecordDeserializationSchema = KafkaRecordDeserializationSchema::valueOnly(valueDeserializationSchema);
// const uint8_t data[] = {65, 65, 65, 66, 67};
// record.value = data;
// record.value_length = 5;
// std::string expected = "aaabc";
// Object* ptr = valueDeserializationSchema->deserialize(data, 5);
// auto* strPtr = static_cast<StringView*>(ptr);
// EXPECT_EQ(strPtr->toString(), expected);
// TestCollector collector;
// kafkaRecordDeserializationSchema->deserialize(record, collector);
// EXPECT_EQ(collector.getCollectedRecord().toString(), expected);
//}