TestDataSourceItem.cpp
72 lines
| 1.7 KiB
| text/x-c
|
CppLexer
|
r1079 | #include <DataSource/DataSourceItem.h> | ||
#include <QObject> | ||||
#include <QtTest> | ||||
#include <iostream> | ||||
namespace { | ||||
void printItem(std::ostream &out, const DataSourceItem &item, int level = 0) | ||||
{ | ||||
for (auto i = 0; i < level; ++i) { | ||||
out << " "; | ||||
} | ||||
out << item.name().toStdString() << "\n"; | ||||
for (auto i = 0, count = item.childCount(); i < count; ++i) { | ||||
printItem(out, *item.child(i), level + 1); | ||||
} | ||||
} | ||||
std::ostream &operator<<(std::ostream &out, const DataSourceItem &item) | ||||
{ | ||||
printItem(out, item, 0); | ||||
return out; | ||||
} | ||||
} // namespace | ||||
Q_DECLARE_METATYPE(std::shared_ptr<DataSourceItem>) | ||||
class TestDataSourceItem : public QObject { | ||||
Q_OBJECT | ||||
private slots: | ||||
void testMerge_data(); | ||||
void testMerge(); | ||||
}; | ||||
void TestDataSourceItem::testMerge_data() | ||||
{ | ||||
QTest::addColumn<std::shared_ptr<DataSourceItem> >("source"); | ||||
QTest::addColumn<std::shared_ptr<DataSourceItem> >("dest"); | ||||
QTest::addColumn<std::shared_ptr<DataSourceItem> >("expectedResult"); | ||||
/// @todo ALX: adds test cases | ||||
} | ||||
void TestDataSourceItem::testMerge() | ||||
{ | ||||
QFETCH(std::shared_ptr<DataSourceItem>, source); | ||||
QFETCH(std::shared_ptr<DataSourceItem>, dest); | ||||
QFETCH(std::shared_ptr<DataSourceItem>, expectedResult); | ||||
// Uncomment to print trees | ||||
// std::cout << "source: \n" << *source << "\n"; | ||||
// std::cout << "dest: \n" << *dest << "\n"; | ||||
// Merges source in dest (not taking source root) | ||||
for (auto i = 0, count = source->childCount(); i < count; ++i) { | ||||
dest->merge(*source->child(i)); | ||||
} | ||||
// Uncomment to print trees | ||||
// std::cout << "dest after merge: \n" << *dest << "\n"; | ||||
// Checks merge result | ||||
QVERIFY(*dest == *expectedResult); | ||||
} | ||||
QTEST_MAIN(TestDataSourceItem) | ||||
#include "TestDataSourceItem.moc" | ||||