#include "gmock/gmock.h" #include "gtest/gtest.h" #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/xml_parser.hpp> #include <sstream> #include <string> using namespace std::string_literals; namespace pt = boost::property_tree; TEST(property_tree, put) { pt::ptree p; pt::ptree list; pt::ptree entry; entry.put_value("name1.txt"); entry.put("<xmlattr>.type", "file1"); list.push_back(pt::ptree::value_type("listentry", entry)); entry.put_value("name2.txt"); entry.put("<xmlattr>.type", "file2"); list.push_back(pt::ptree::value_type("listentry", entry)); p.push_back(pt::ptree::value_type("list", list)); std::stringstream ss; pt::xml_parser::write_xml(ss, p /*, pt::xml_parser::xml_writer_make_settings<std::string>(' ', 1)*/); EXPECT_EQ(ss.str(), "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<list><listentry type=\"file1\">name1.txt</listentry><listentry type=\"file2\">name2.txt</listentry></list>"); } int main(int argc, char* argv[]) { ::testing::InitGoogleMock(&argc, argv); return RUN_ALL_TESTS(); }