Files
pdf/engine/tests/content_serializer_test.cpp
2026-06-16 19:06:48 +05:30

48 lines
1.5 KiB
C++

#include <gtest/gtest.h>
#include "../src/serializer/content_serializer.hpp"
using namespace pdfengine;
TEST(ContentSerializerTest, SerializeTextObject) {
auto textObj = std::make_unique<TextObject>();
textObj->text = "Hello Serialization";
textObj->fontName = "F1";
textObj->fontSize = 14.5;
textObj->tm[0] = 1.0;
textObj->tm[1] = 0.0;
textObj->tm[2] = 0.0;
textObj->tm[3] = 1.0;
textObj->tm[4] = 100.0;
textObj->tm[5] = 200.0;
std::vector<std::unique_ptr<ContentObject>> objects;
objects.push_back(std::move(textObj));
ContentSerializer serializer;
auto ops = serializer.serialize(objects);
ASSERT_EQ(ops.size(), 5);
EXPECT_EQ(ops[0].op, "BT");
EXPECT_EQ(ops[1].op, "Tf");
ASSERT_EQ(ops[1].operands.size(), 2);
EXPECT_EQ(ops[1].operands[0]->stringValue, "F1");
EXPECT_DOUBLE_EQ(ops[1].operands[1]->numberValue, 14.5);
EXPECT_EQ(ops[2].op, "Tm");
ASSERT_EQ(ops[2].operands.size(), 6);
EXPECT_DOUBLE_EQ(ops[2].operands[0]->numberValue, 1.0);
EXPECT_DOUBLE_EQ(ops[2].operands[1]->numberValue, 0.0);
EXPECT_DOUBLE_EQ(ops[2].operands[2]->numberValue, 0.0);
EXPECT_DOUBLE_EQ(ops[2].operands[3]->numberValue, 1.0);
EXPECT_DOUBLE_EQ(ops[2].operands[4]->numberValue, 100.0);
EXPECT_DOUBLE_EQ(ops[2].operands[5]->numberValue, 200.0);
EXPECT_EQ(ops[3].op, "Tj");
ASSERT_EQ(ops[3].operands.size(), 1);
EXPECT_EQ(ops[3].operands[0]->stringValue, "Hello Serialization");
EXPECT_EQ(ops[4].op, "ET");
}