1 /** 2 * UGENE - Integrated Bioinformatics Tools. 3 * Copyright (C) 2008-2021 UniPro <ugene@unipro.ru> 4 * http://ugene.net 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public License 8 * as published by the Free Software Foundation; either version 2 9 * of the License, or (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 19 * MA 02110-1301, USA. 20 */ 21 22 #ifndef _U2_SEQUENCE_DBI_SQLITE_SPECIFIC_UNIT_TESTS_H_ 23 #define _U2_SEQUENCE_DBI_SQLITE_SPECIFIC_UNIT_TESTS_H_ 24 25 #include <unittest.h> 26 27 #include "core/dbi/DbiTest.h" 28 29 namespace U2 { 30 31 class SQLiteDbi; 32 class U2SequenceDbi; 33 34 class SequenceSQLiteSpecificTestData { 35 public: 36 static void init(); 37 static void shutdown(); 38 39 static SQLiteDbi *getSQLiteDbi(); 40 41 static U2DataId createTestSequence(bool enableModTracking, qint64 seqLength, U2OpStatus &os); 42 static U2DataId createTestSequence(bool enableModTracking, const QByteArray &seqData, U2OpStatus &os); 43 44 static qint64 getModStepsNum(const U2DataId &objId, U2OpStatus &os); 45 46 static const QString TEST_SEQUENCE_NAME; 47 48 private: 49 static TestDbiProvider dbiProvider; 50 static const QString &SQLITE_SEQUENCE_DB_URL; 51 static SQLiteDbi *sqliteDbi; 52 }; 53 54 /////////////////////////////////////////////////////////////// 55 // Tests for U2SequenceDbi API that assume that SQLiteDbi was used. 56 // The tests verify the correct structure of the SQLiteDbi 57 // after some operations. 58 /////////////////////////////////////////////////////////////// 59 60 /** 61 * Update a sequence data: 62 * ^ noModTrack - update the sequence with disabled modification tracking, 63 * there are no modSteps. 64 * ^ empty - the sequence is empty. 65 * ^ clearHint - the sequence is not empty, all data is removed, an appropriate hint is used. 66 * ^ clearNoHint - the sequence is not empty, all data is removed, there are no hints. 67 * ^ begin - the part at the beginning of the sequence is updated. 68 * ^ middle - the part in the middle of the sequence is updated. 69 * ^ middleNoLength - the part in the middle of the sequence is updated, 70 * length is not changed, an appropriate hint is used. 71 * ^ end - the part at the end of the sequence is updated. 72 */ 73 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_noModTrack); 74 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyHint); 75 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyNoHint); 76 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_clear); 77 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_begin); 78 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle); 79 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_middleNoLength); 80 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_end); 81 82 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_noModTrack_undo); 83 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyHint_undo); 84 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyNoHint_undo); 85 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_clear_undo); 86 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_begin_undo); 87 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_undo); 88 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_middleNoLength_undo); 89 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_end_undo); 90 91 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_noModTrack_redo); 92 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyHint_redo); 93 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyNoHint_redo); 94 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_clear_redo); 95 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_begin_redo); 96 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_redo); 97 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_middleNoLength_redo); 98 DECLARE_TEST(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_end_redo); 99 100 } // namespace U2 101 102 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_noModTrack); 103 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyHint); 104 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyNoHint); 105 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_clear); 106 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_begin); 107 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle); 108 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_middleNoLength); 109 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_end); 110 111 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_noModTrack_undo); 112 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyHint_undo); 113 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyNoHint_undo); 114 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_clear_undo); 115 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_begin_undo); 116 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_undo); 117 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_middleNoLength_undo); 118 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_end_undo); 119 120 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_noModTrack_redo); 121 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyHint_redo); 122 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_emptyNoHint_redo); 123 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_clear_redo); 124 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_begin_redo); 125 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_redo); 126 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_middle_middleNoLength_redo); 127 DECLARE_METATYPE(SequenceDbiSQLiteSpecificUnitTests, updateSeqData_end_redo); 128 129 #endif // _U2_SEQUENCE_DBI_SQLITE_SPECIFIC_UNIT_TESTS_H_ 130