mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-04-19 15:52:53 +00:00
Add unit tests for writing gdts
This commit is contained in:
parent
78ebeaaa7b
commit
82a08d0850
@ -270,7 +270,8 @@ class GdtWriter
|
||||
if (entry.m_parent)
|
||||
m_stream << "[ \"" << entry.m_parent->m_name << "\" ]\n";
|
||||
else
|
||||
m_stream << "( \"" << entry.m_gdf_name << " )\n";
|
||||
m_stream << "( \"" << entry.m_gdf_name << "\" )\n";
|
||||
DoIntendation();
|
||||
m_stream << "{\n";
|
||||
|
||||
m_intendation_level++;
|
||||
@ -282,6 +283,7 @@ class GdtWriter
|
||||
}
|
||||
|
||||
m_intendation_level--;
|
||||
DoIntendation();
|
||||
m_stream << "}\n";
|
||||
}
|
||||
|
||||
|
@ -237,4 +237,59 @@ namespace obj::gdt
|
||||
REQUIRE(entry.m_properties.at("value2") == "22");
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("Gdt: Ensure can write simple gdt and parse it again", "[gdt]")
|
||||
{
|
||||
Gdt gdt;
|
||||
gdt.m_version.m_game = "whatagame";
|
||||
gdt.m_version.m_version = 6969;
|
||||
|
||||
{
|
||||
auto entry = std::make_unique<GdtEntry>("sickentry", "verycool.gdf");
|
||||
entry->m_properties["hello"] = "world";
|
||||
entry->m_properties["hi"] = "universe";
|
||||
gdt.m_entries.emplace_back(std::move(entry));
|
||||
}
|
||||
|
||||
{
|
||||
auto entry = std::make_unique<GdtEntry>("evencoolerentry", gdt.m_entries[0].get());
|
||||
entry->m_properties["nope"] = "xd";
|
||||
entry->m_properties["idk"] = "whattotypeanymore";
|
||||
gdt.m_entries.emplace_back(std::move(entry));
|
||||
}
|
||||
|
||||
std::stringstream ss;
|
||||
gdt.WriteToStream(ss);
|
||||
|
||||
std::cout << ss.str();
|
||||
|
||||
Gdt gdt2;
|
||||
REQUIRE(gdt2.ReadFromStream(ss));
|
||||
|
||||
REQUIRE(gdt2.m_version.m_game == "whatagame");
|
||||
REQUIRE(gdt2.m_version.m_version == 6969);
|
||||
|
||||
REQUIRE(gdt2.m_entries.size() == 2);
|
||||
|
||||
{
|
||||
const auto& entry = *gdt2.m_entries[0];
|
||||
REQUIRE(entry.m_name == "sickentry");
|
||||
REQUIRE(entry.m_gdf_name == "verycool.gdf");
|
||||
REQUIRE(entry.m_parent == nullptr);
|
||||
REQUIRE(entry.m_properties.size() == 2);
|
||||
|
||||
REQUIRE(entry.m_properties.at("hello") == "world");
|
||||
REQUIRE(entry.m_properties.at("hi") == "universe");
|
||||
}
|
||||
|
||||
{
|
||||
const auto& entry = *gdt2.m_entries[1];
|
||||
REQUIRE(entry.m_name == "evencoolerentry");
|
||||
REQUIRE(entry.m_parent == gdt2.m_entries[0].get());
|
||||
REQUIRE(entry.m_properties.size() == 2);
|
||||
|
||||
REQUIRE(entry.m_properties.at("nope") == "xd");
|
||||
REQUIRE(entry.m_properties.at("idk") == "whattotypeanymore");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user