File indexing completed on 2024-05-12 05:55:22

0001 /*
0002     This file is part of the Okteta Core library, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2008 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef ABSTRACTPIECETABLECHANGEIFTEST_HPP
0010 #define ABSTRACTPIECETABLECHANGEIFTEST_HPP
0011 
0012 // Qt
0013 #include <QObject>
0014 
0015 namespace KPieceTable {
0016 
0017 class AbstractPieceTableChange;
0018 class PieceTable;
0019 
0020 class AbstractPieceTableChangeIfTest : public QObject
0021 {
0022     Q_OBJECT
0023 
0024 protected:
0025     AbstractPieceTableChangeIfTest();
0026 
0027 protected: // our API
0028     virtual AbstractPieceTableChange* createPieceTableChange() = 0;
0029     virtual void deletePieceTableChange(AbstractPieceTableChange* pieceTableChange) = 0;
0030 
0031     virtual void changePieceTable(PieceTable* pieceTable) = 0;
0032 
0033 private:
0034     struct KTestData* prepareTestInsert();
0035 
0036 private Q_SLOTS: // test functions
0037     void init();
0038     void cleanup();
0039 
0040     void testMerge();
0041     void testRevertApply();
0042 
0043 private: // used in all tests
0044     /** pointer to the change to test */
0045     AbstractPieceTableChange* mPieceTableChange = nullptr;
0046 };
0047 
0048 inline AbstractPieceTableChangeIfTest::AbstractPieceTableChangeIfTest() = default;
0049 
0050 }
0051 
0052 #endif