File indexing completed on 2024-05-05 05:55:36

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 #include "grouppiecetablechangeabstractpiecetablechangeiftest.hpp"
0010 
0011 // test object
0012 #include <piecetable/grouppiecetablechange.hpp>
0013 #include <piecetable/replacepiecetablechange.hpp>
0014 #include <piecetable/insertpiecetablechange.hpp>
0015 #include <piecetable/removepiecetablechange.hpp>
0016 // lib
0017 #include <piecetable/piecetable.hpp>
0018 // Qt
0019 #include <QTest>
0020 
0021 namespace KPieceTable {
0022 
0023 static constexpr Address ReplacedOldStorageOffset = 80;
0024 static constexpr Address ReplacedStart = 32;
0025 static constexpr Address ReplacedEnd = 78;
0026 static constexpr Size ReplacedWidth = ReplacedEnd - ReplacedStart + 1;
0027 static constexpr Size ReplaceLength = 30;
0028 static constexpr Address ReplaceInsertStorageOffset = 67;
0029 
0030 static constexpr Address InsertOffset = 50;
0031 static constexpr Size InsertLength = 80;
0032 static constexpr Address InsertStorageOffset = 67;
0033 
0034 static constexpr Address RemovedStart = 40;
0035 static constexpr Address RemovedEnd = 78;
0036 static constexpr Size RemovedWidth = RemovedEnd - RemovedStart + 1;
0037 static constexpr Address RemovedOldStorageOffset = 23;
0038 
0039 AbstractPieceTableChange* GroupPieceTableChangeAbstractPieceTableChangeIfTest::createPieceTableChange()
0040 {
0041     const Piece replacedPiece(AddressRange::fromWidth(ReplacedOldStorageOffset, ReplacedWidth), Piece::ChangeStorage);
0042     const Piece removedPiece(AddressRange::fromWidth(RemovedOldStorageOffset, RemovedWidth), Piece::ChangeStorage);
0043 
0044     ReplacePieceTableChange* replaceChange =
0045         new ReplacePieceTableChange(AddressRange(ReplacedStart, ReplacedEnd),
0046                                     ReplaceLength, ReplaceInsertStorageOffset,
0047                                     PieceList(replacedPiece));
0048     InsertPieceTableChange* insertChange =
0049         new InsertPieceTableChange(InsertOffset, InsertLength, InsertStorageOffset);
0050     RemovePieceTableChange* removeChange =
0051         new RemovePieceTableChange(AddressRange(RemovedStart, RemovedEnd), PieceList(removedPiece));
0052 
0053     GroupPieceTableChange* pieceTableChange =
0054         new GroupPieceTableChange(0, QString());
0055 
0056     pieceTableChange->appendChange(replaceChange);
0057     pieceTableChange->appendChange(insertChange);
0058     pieceTableChange->appendChange(removeChange);
0059 
0060     return pieceTableChange;
0061 }
0062 void GroupPieceTableChangeAbstractPieceTableChangeIfTest::changePieceTable(PieceTable* pieceTable)
0063 {
0064     pieceTable->replace(AddressRange(ReplacedStart, ReplacedEnd), ReplaceLength, ReplaceInsertStorageOffset);
0065     pieceTable->insert(InsertOffset, InsertLength, InsertStorageOffset);
0066     pieceTable->remove(AddressRange(RemovedStart, RemovedEnd));
0067 }
0068 
0069 void GroupPieceTableChangeAbstractPieceTableChangeIfTest::deletePieceTableChange(
0070     AbstractPieceTableChange* pieceTableChange)
0071 {
0072     delete pieceTableChange;
0073 }
0074 
0075 }
0076 
0077 QTEST_GUILESS_MAIN(KPieceTable::GroupPieceTableChangeAbstractPieceTableChangeIfTest)