1 /*
2 This file is part of the Okteta Core library, made within the KDE community.
3
4 SPDX-FileCopyrightText: 2008 Friedrich W. H. Kossebau <kossebau@kde.org>
5
6 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
7 */
8
9 #include "grouppiecetablechangeabstractpiecetablechangeiftest.hpp"
10
11 // test object
12 #include <piecetable/grouppiecetablechange.hpp>
13 #include <piecetable/replacepiecetablechange.hpp>
14 #include <piecetable/insertpiecetablechange.hpp>
15 #include <piecetable/removepiecetablechange.hpp>
16 // lib
17 #include <piecetable/piecetable.hpp>
18 // Qt
19 #include <QTest>
20
21 namespace KPieceTable {
22
23 static constexpr Address ReplacedOldStorageOffset = 80;
24 static constexpr Address ReplacedStart = 32;
25 static constexpr Address ReplacedEnd = 78;
26 static constexpr Size ReplacedWidth = ReplacedEnd - ReplacedStart + 1;
27 static constexpr Size ReplaceLength = 30;
28 static constexpr Address ReplaceInsertStorageOffset = 67;
29
30 static constexpr Address InsertOffset = 50;
31 static constexpr Size InsertLength = 80;
32 static constexpr Address InsertStorageOffset = 67;
33
34 static constexpr Address RemovedStart = 40;
35 static constexpr Address RemovedEnd = 78;
36 static constexpr Size RemovedWidth = RemovedEnd - RemovedStart + 1;
37 static constexpr Address RemovedOldStorageOffset = 23;
38
createPieceTableChange()39 AbstractPieceTableChange* GroupPieceTableChangeAbstractPieceTableChangeIfTest::createPieceTableChange()
40 {
41 const Piece replacedPiece(AddressRange::fromWidth(ReplacedOldStorageOffset, ReplacedWidth), Piece::ChangeStorage);
42 const Piece removedPiece(AddressRange::fromWidth(RemovedOldStorageOffset, RemovedWidth), Piece::ChangeStorage);
43
44 ReplacePieceTableChange* replaceChange =
45 new ReplacePieceTableChange(AddressRange(ReplacedStart, ReplacedEnd),
46 ReplaceLength, ReplaceInsertStorageOffset,
47 PieceList(replacedPiece));
48 InsertPieceTableChange* insertChange =
49 new InsertPieceTableChange(InsertOffset, InsertLength, InsertStorageOffset);
50 RemovePieceTableChange* removeChange =
51 new RemovePieceTableChange(AddressRange(RemovedStart, RemovedEnd), PieceList(removedPiece));
52
53 GroupPieceTableChange* pieceTableChange =
54 new GroupPieceTableChange(0, QString());
55
56 pieceTableChange->appendChange(replaceChange);
57 pieceTableChange->appendChange(insertChange);
58 pieceTableChange->appendChange(removeChange);
59
60 return pieceTableChange;
61 }
changePieceTable(PieceTable * pieceTable)62 void GroupPieceTableChangeAbstractPieceTableChangeIfTest::changePieceTable(PieceTable* pieceTable)
63 {
64 pieceTable->replace(AddressRange(ReplacedStart, ReplacedEnd), ReplaceLength, ReplaceInsertStorageOffset);
65 pieceTable->insert(InsertOffset, InsertLength, InsertStorageOffset);
66 pieceTable->remove(AddressRange(RemovedStart, RemovedEnd));
67 }
68
deletePieceTableChange(AbstractPieceTableChange * pieceTableChange)69 void GroupPieceTableChangeAbstractPieceTableChangeIfTest::deletePieceTableChange(
70 AbstractPieceTableChange* pieceTableChange)
71 {
72 delete pieceTableChange;
73 }
74
75 }
76
77 QTEST_GUILESS_MAIN(KPieceTable::GroupPieceTableChangeAbstractPieceTableChangeIfTest)
78