##// END OF EJS Templates
Completes fuzzing test structure by setting initial range for the time controller
Completes fuzzing test structure by setting initial range for the time controller

File last commit:

r1040:d45cab418d5a
r1178:324a3ee21c58
Show More
DataSourceItemBuilder.h
45 lines | 1.4 KiB | text/x-c | CLexer
/ core / tests / DataSource / DataSourceItemBuilder.h
Alexandre Leroux
Creates builder used to facilitate creation of items (for test cases)
r1040 #ifndef SCIQLOP_DATASOURCEITEMBUILDER_H
#define SCIQLOP_DATASOURCEITEMBUILDER_H
#include <DataSource/DataSourceItem.h>
#include <memory>
#include <stack>
/**
* @brief The DataSourceItemBuilder class aims to facilitate the creation of a DataSourceItem for unit tests
* @sa DataSourceItem
*/
class DataSourceItemBuilder {
public:
/// Inits root item
DataSourceItemBuilder & root(const QString &name);
DataSourceItemBuilder & root(QVariantHash data);
/// Adds node into the current item
DataSourceItemBuilder & node(const QString &name);
DataSourceItemBuilder & node(QVariantHash data);
/// Adds product into the current item
DataSourceItemBuilder & product(const QString &name);
DataSourceItemBuilder & product(QVariantHash data);
/// Adds component into the current item
DataSourceItemBuilder & component(const QString &name);
DataSourceItemBuilder & component(QVariantHash data);
/// Closes the build of the current item
DataSourceItemBuilder& end();
/// Creates the DataSourceItem
std::shared_ptr<DataSourceItem> build();
private:
DataSourceItemBuilder& append(DataSourceItemType type, const QString &name);
DataSourceItemBuilder& append(DataSourceItemType type, QVariantHash data);
std::shared_ptr<DataSourceItem> m_Root{nullptr};
std::stack<DataSourceItem*> m_Items;
};
#endif // SCIQLOP_DATASOURCEITEMBUILDER_H