File indexing completed on 2024-04-21 03:56:04
0001 /* 0002 SPDX-FileCopyrightText: 2009 Stephen Kelly <steveire@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef MODEL_COMMANDER_H 0008 #define MODEL_COMMANDER_H 0009 0010 #include "dynamictreemodel.h" 0011 0012 #include "proxymodeltestsuite_export.h" 0013 0014 class QAbstractItemModel; 0015 0016 #include <QSet> 0017 #include <QStringList> 0018 0019 class PROXYMODELTESTSUITE_EXPORT ModelCommander : public QObject 0020 { 0021 Q_OBJECT 0022 public: 0023 explicit ModelCommander(DynamicTreeModel *model, QObject *parent); 0024 0025 ModelChangeCommand *currentCommand(); 0026 0027 public Q_SLOTS: 0028 void init_testInsertWhenEmpty(const QString &dataTag); 0029 void init_testInsertInRoot(const QString &dataTag); 0030 void init_testInsertInTopLevel(const QString &dataTag); 0031 void init_testInsertInSecondLevel(const QString &dataTag); 0032 0033 void init_testRemoveFromRoot(const QString &dataTag); 0034 void init_testRemoveFromTopLevel(const QString &dataTag); 0035 void init_testRemoveFromSecondLevel(const QString &dataTag); 0036 0037 void init_testMoveFromRoot(const QString &dataTag); 0038 void init_testMoveFromTopLevel(const QString &dataTag); 0039 void init_testMoveFromSecondLevel(const QString &dataTag); 0040 0041 void init_testModifyInRoot(const QString &dataTag); 0042 void init_testModifyInTopLevel(const QString &dataTag); 0043 void init_testModifyInSecondLevel(const QString &dataTag); 0044 0045 QStringList execute_testInsertWhenEmpty(const QString &dataTag); 0046 QStringList execute_testInsertInRoot(const QString &dataTag); 0047 QStringList execute_testInsertInTopLevel(const QString &dataTag); 0048 QStringList execute_testInsertInSecondLevel(const QString &dataTag); 0049 0050 QStringList execute_testRemoveFromRoot(const QString &dataTag); 0051 QStringList execute_testRemoveFromTopLevel(const QString &dataTag); 0052 QStringList execute_testRemoveFromSecondLevel(const QString &dataTag); 0053 0054 QStringList execute_testMoveFromRoot(const QString &dataTag); 0055 QStringList execute_testMoveFromTopLevel(const QString &dataTag); 0056 QStringList execute_testMoveFromSecondLevel(const QString &dataTag); 0057 0058 QStringList execute_testModifyInRoot(const QString &dataTag); 0059 QStringList execute_testModifyInTopLevel(const QString &dataTag); 0060 QStringList execute_testModifyInSecondLevel(const QString &dataTag); 0061 0062 private: 0063 QStringList executeTestInsert(QList<int> rowAncestors, const QString &dataTag); 0064 QStringList executeTestRemove(QList<int> rowAncestors, const QString &dataTag); 0065 QStringList executeTestMove(QList<int> rowAncestors, const QString &dataTag); 0066 QStringList executeTestModify(QList<int> rowAncestors, const QString &dataTag); 0067 0068 void initTestModel(const QString &dataTag); 0069 0070 void execute(ModelChangeCommand *command); 0071 0072 private: 0073 int m_counter; 0074 DynamicTreeModel *m_model; 0075 ModelChangeCommand *m_currentCommand; 0076 QSet<QString> m_testsSeen; 0077 }; 0078 0079 #endif