File indexing completed on 2024-05-12 05:40:50
0001 0002 #include "data/character.h" 0003 #include "model/genericmodel.h" 0004 #include <QAbstractItemModelTester> 0005 #include <QtTest/QtTest> 0006 #include <memory> 0007 0008 class TestField : public CharacterField 0009 { 0010 public: 0011 TestField(); 0012 Type getType(); 0013 QVariant getData(int col, int role); 0014 virtual bool setData(int col, QVariant value, int role); 0015 0016 public: 0017 QVariant m_value; 0018 }; 0019 0020 TestField::TestField() {} 0021 0022 CharacterField::Type TestField::getType() 0023 { 0024 return CharacterField::Shape; 0025 } 0026 0027 QVariant TestField::getData(int col, int role) 0028 { 0029 if(role == Qt::EditRole) 0030 return m_value; 0031 return {}; 0032 } 0033 0034 bool TestField::setData(int col, QVariant value, int role) 0035 { 0036 m_value= value; 0037 return true; 0038 } 0039 0040 class GenericModelTest : public QObject 0041 { 0042 Q_OBJECT 0043 public: 0044 GenericModelTest(); 0045 0046 private slots: 0047 void init(); 0048 void addTest(); 0049 void removeTest(); 0050 void columnNumberTest(); 0051 0052 private: 0053 std::unique_ptr<GenericModel> m_model; 0054 }; 0055 0056 void GenericModelTest::init() 0057 { 0058 QStringList cols; 0059 cols << "id" 0060 << "value"; 0061 m_model.reset(new GenericModel(cols)); 0062 0063 new QAbstractItemModelTester(m_model.get()); 0064 } 0065 0066 GenericModelTest::GenericModelTest() {} 0067 0068 void GenericModelTest::addTest() 0069 { 0070 TestField field; 0071 field.setData(0, 1, 0); 0072 m_model->addData(&field); 0073 0074 auto index= m_model->index(0, 0); 0075 QCOMPARE(field.getData(0, 0), m_model->data(index, 0)); 0076 QCOMPARE(m_model->rowCount(QModelIndex()), 1); 0077 } 0078 0079 void GenericModelTest::removeTest() 0080 { 0081 TestField field; 0082 field.setData(0, 1, 0); 0083 m_model->addData(&field); 0084 0085 auto index2= m_model->index(0, 0); 0086 QCOMPARE(field.getData(0, 0), m_model->data(index2, 0)); 0087 QCOMPARE(m_model->rowCount(QModelIndex()), 1); 0088 0089 auto index= m_model->index(0, 0); 0090 0091 m_model->removeData(index); 0092 0093 QCOMPARE(m_model->rowCount(), 0); 0094 } 0095 0096 void GenericModelTest::columnNumberTest() 0097 { 0098 QCOMPARE(m_model->columnCount(QModelIndex()), 2); 0099 } 0100 0101 QTEST_MAIN(GenericModelTest); 0102 0103 #include "tst_genericmodel.moc"