From: Arvin Schnell Date: Fri, 5 Oct 2018 10:07:06 +0000 (+0200) Subject: - added unit test X-Git-Tag: v0.7.1~17^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1d5594cd83441948b4fb40bcfc804fc8a12f68fd;p=thirdparty%2Fsnapper.git - added unit test --- diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index 3058449e..5607a378 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -7,7 +7,7 @@ AM_CPPFLAGS = -I$(top_srcdir) $(DBUS_CFLAGS) LDADD = ../snapper/libsnapper.la ../dbus/libdbus.la -lboost_unit_test_framework check_PROGRAMS = sysconfig-get1.test dirname1.test basename1.test \ - equal-date.test dbus-escape.test cmp-lt.test humanstring.test + equal-date.test dbus-escape.test cmp-lt.test humanstring.test table.test if ENABLE_BTRFS_QUOTA check_PROGRAMS += qgroup1.test @@ -23,3 +23,5 @@ equal_date_test_LDADD = -lboost_unit_test_framework ../client/utils/libutils.la humanstring_test_LDADD = -lboost_unit_test_framework ../client/utils/libutils.la +table_test_LDADD = -lboost_unit_test_framework ../client/utils/libutils.la + diff --git a/testsuite/table.cc b/testsuite/table.cc new file mode 100644 index 00000000..5c5c4ddb --- /dev/null +++ b/testsuite/table.cc @@ -0,0 +1,73 @@ + +#define BOOST_TEST_DYN_LINK +#define BOOST_TEST_MODULE snapper + +#include + +#include +#include +#include + +#include "../client/utils/Table.h" + + +using namespace std; + + +void +check(const Table& table, const vector& output) +{ + ostringstream tmp; + tmp << setw(42) << table; + string lhs = tmp.str(); + + string rhs = accumulate(output.begin(), output.end(), (string)(""), + [](const string& a, const string& b) { return a + b + '\n'; }); + + BOOST_CHECK_EQUAL(lhs, rhs); +} + + +BOOST_AUTO_TEST_CASE(test1) +{ + locale::global(locale("en_GB.UTF-8")); + + Table table; + + TableHeader header; + header.add("Number", TableAlign::RIGHT); + header.add("Name EN"); + header.add("Name DE"); + header.add("Square", TableAlign::RIGHT); + table.setHeader(header); + + TableRow row1; + row1.add("0"); + row1.add("zero"); + row1.add("Null"); + row1.add("0"); + table.add(row1); + + TableRow row2; + row2 << "1" << "one" << "Eins" << "1"; + table.add(row2); + + TableRow row3; + row3 << "5" << "five" << "Fünf" << "25"; + table.add(row3); + + TableRow row4; + row4 << "12" << "twelve" << "Zwölf" << "144"; + table.add(row4); + + vector output = { + "Number | Name EN | Name DE | Square", + "-------+---------+---------+-------", + " 0 | zero | Null | 0", + " 1 | one | Eins | 1", + " 5 | five | Fünf | 25", + " 12 | twelve | Zwölf | 144" + }; + + check(table, output); +}