summaryrefslogtreecommitdiffhomepage
path: root/tests/test-environment.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-environment.cpp')
-rw-r--r--tests/test-environment.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/test-environment.cpp b/tests/test-environment.cpp
new file mode 100644
index 0000000..da8e4e0
--- /dev/null
+++ b/tests/test-environment.cpp
@@ -0,0 +1,48 @@
+#include <boost/test/unit_test.hpp>
+#include <boost/test/data/dataset.hpp>
+#include <boost/test/data/monomorphic.hpp>
+#include <boost/test/data/test_case.hpp>
+
+#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 ptree construction and xml serialization
+BOOST_AUTO_TEST_CASE(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)*/);
+
+ BOOST_CHECK_EQUAL(ss.str(), "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<list><listentry type=\"file1\">name1.txt</listentry><listentry type=\"file2\">name2.txt</listentry></list>");
+}
+
+// test std::stoul for negative numbers
+BOOST_AUTO_TEST_CASE(string_stoul)
+{
+ unsigned long l = std::stoul("-1");
+
+ BOOST_CHECK_EQUAL(l, std::numeric_limits<unsigned long>::max());
+}