File indexing completed on 2024-05-19 16:18:20
0001 /*************************************************************************** 0002 * SPDX-FileCopyrightText: 2022 S. MANKOWSKI stephane@mankowski.fr 0003 * SPDX-FileCopyrightText: 2022 G. DE BURE support@mankowski.fr 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 ***************************************************************************/ 0006 /** @file 0007 * This file is a test script. 0008 * 0009 * @author Stephane MANKOWSKI / Guillaume DE BURE 0010 */ 0011 #include "skgtestmacro.h" 0012 #include "skgbankincludes.h" 0013 #include "skgservices.h" 0014 0015 /** 0016 * The main function of the unit test 0017 * @param argc the number of arguments 0018 * @param argv the list of arguments 0019 */ 0020 int main(int argc, char** argv) 0021 { 0022 Q_UNUSED(argc) 0023 Q_UNUSED(argv) 0024 0025 // Init test 0026 SKGINITTEST(true) 0027 0028 // ============================================================================ 0029 { 0030 // Test bank document 0031 SKGDocumentBank document1; 0032 SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true) 0033 SKGBankObject bank(&document1); 0034 SKGAccountObject account; 0035 SKGUnitObject unit_euro(&document1); 0036 SKGUnitValueObject unit_euro_val1; 0037 QDate d1 = QDate::currentDate().addMonths(-6); 0038 SKGError err; 0039 { 0040 // Scope of the transaction 0041 SKGBEGINTRANSACTION(document1, QStringLiteral("BANK_T1"), err) 0042 0043 // Creation bank 0044 SKGTESTERROR(QStringLiteral("BANK:setName"), bank.setName(QStringLiteral("CREDIT COOP")), true) 0045 SKGTESTERROR(QStringLiteral("BANK:save"), bank.save(), true) 0046 0047 // Creation account 0048 SKGTESTERROR(QStringLiteral("BANK:addAccount"), bank.addAccount(account), true) 0049 SKGTESTERROR(QStringLiteral("ACCOUNT:setName"), account.setName(QStringLiteral("Courant steph")), true) 0050 SKGTESTERROR(QStringLiteral("ACCOUNT:save"), account.save(), true) 0051 0052 // Creation unit 0053 SKGTESTERROR(QStringLiteral("UNIT:setName"), unit_euro.setName(QStringLiteral("euro")), true) 0054 SKGTESTERROR(QStringLiteral("UNIT:save"), unit_euro.save(), true) 0055 0056 // Creation unitvalue 0057 SKGTESTERROR(QStringLiteral("UNIT:addUnitValue"), unit_euro.addUnitValue(unit_euro_val1), true) 0058 SKGTESTERROR(QStringLiteral("UNITVALUE:setQuantity"), unit_euro_val1.setQuantity(1), true) 0059 SKGTESTERROR(QStringLiteral("UNITVALUE:setDate"), unit_euro_val1.setDate(d1), true) 0060 SKGTESTERROR(QStringLiteral("UNITVALUE:save"), unit_euro_val1.save(), true) 0061 0062 // Creation operation 0063 SKGOperationObject op; 0064 SKGTESTERROR(QStringLiteral("ACCOUNT:addOperation"), account.addOperation(op), true) 0065 SKGTESTERROR(QStringLiteral("OPE:setMode"), op.setMode(QStringLiteral("cheque")), true) 0066 SKGTESTERROR(QStringLiteral("OPE:setDate"), op.setDate(d1), true) 0067 SKGTESTERROR(QStringLiteral("OPE:setUnit"), op.setUnit(unit_euro), true) 0068 SKGTESTERROR(QStringLiteral("OPE:save"), op.save(), true) 0069 0070 SKGSubOperationObject subop1; 0071 SKGTESTERROR(QStringLiteral("OPE:addSubOperation"), op.addSubOperation(subop1), true) 0072 SKGTESTERROR(QStringLiteral("SUBOPE:setQuantity"), subop1.setQuantity(21), true) 0073 SKGTESTERROR(QStringLiteral("SUBOPE:save"), subop1.save(), true) 0074 SKGSubOperationObject subop2; 0075 SKGTESTERROR(QStringLiteral("OPE:addSubOperation"), op.addSubOperation(subop2), true) 0076 SKGTESTERROR(QStringLiteral("SUBOPE:setQuantity"), subop2.setQuantity(1), true) 0077 SKGTESTERROR(QStringLiteral("SUBOPE:save"), subop2.save(), true) 0078 0079 SKGTrackerObject tracker(&document1); 0080 SKGTrackerObject trackerCopy(tracker); 0081 SKGTrackerObject trackerCopy2(static_cast<SKGObjectBase>(tracker)); 0082 SKGTESTERROR(QStringLiteral("REF:setName"), tracker.setName(QStringLiteral("tracker")), true) 0083 SKGTESTERROR(QStringLiteral("REF:setComment"), tracker.setComment(QStringLiteral("comment")), true) 0084 SKGTESTERROR(QStringLiteral("REF:save"), tracker.save(), true) 0085 SKGTEST(QStringLiteral("REF:getName"), tracker.getName(), QStringLiteral("tracker")) 0086 SKGTEST(QStringLiteral("REF:getComment"), tracker.getComment(), QStringLiteral("comment")) 0087 0088 SKGTESTBOOL("REF:isClosed", tracker.isClosed(), false) 0089 SKGTESTERROR(QStringLiteral("OPE:setClosed"), tracker.setClosed(true), true) 0090 SKGTESTBOOL("REF:isClosed", tracker.isClosed(), true) 0091 SKGTESTERROR(QStringLiteral("OPE:setClosed"), tracker.setClosed(false), true) 0092 SKGTESTBOOL("REF:isClosed", tracker.isClosed(), false) 0093 0094 SKGTESTERROR(QStringLiteral("OPE:setTracker"), subop1.setTracker(tracker), true) 0095 SKGTESTERROR(QStringLiteral("OPE:save"), subop1.save(), true) 0096 0097 SKGTESTERROR(QStringLiteral("OPE:setClosed"), tracker.setClosed(true), true) 0098 SKGTESTERROR(QStringLiteral("OPE:save"), tracker.save(), true) 0099 0100 // BUG 250350 vvv 0101 SKGTESTERROR(QStringLiteral("OPE:setTracker"), subop1.setTracker(tracker), true) 0102 SKGTESTERROR(QStringLiteral("OPE:setTracker"), subop1.setTracker(tracker), true) 0103 0104 SKGTrackerObject trackerclose(&document1); 0105 SKGTESTERROR(QStringLiteral("REF:setName"), trackerclose.setName(QStringLiteral("trackerclose")), true) 0106 SKGTESTERROR(QStringLiteral("OPE:setClosed"), trackerclose.setClosed(true), true) 0107 SKGTESTERROR(QStringLiteral("REF:save"), trackerclose.save(), true) 0108 SKGTESTERROR(QStringLiteral("OPE:setTracker"), subop1.setTracker(trackerclose), false) 0109 0110 SKGTrackerObject trackeropen(&document1); 0111 SKGTESTERROR(QStringLiteral("REF:setName"), trackeropen.setName(QStringLiteral("trackeropen")), true) 0112 SKGTESTERROR(QStringLiteral("OPE:setClosed"), trackerclose.setClosed(true), true) 0113 SKGTESTERROR(QStringLiteral("OPE:setTracker"), subop1.setTracker(trackeropen), false) 0114 // BUG 250350 ^^^ 0115 0116 SKGTrackerObject tracker2; 0117 SKGTESTERROR(QStringLiteral("OPE:getTracker"), subop1.getTracker(tracker2), true) 0118 SKGTESTBOOL("OPE:compare", (tracker == tracker2), true) 0119 0120 SKGTESTERROR(QStringLiteral("REF:load"), tracker.load(), true) 0121 SKGTEST(QStringLiteral("REF:getCurrentAmount"), tracker.getCurrentAmount(), 21) 0122 SKGObjectBase::SKGListSKGObjectBase oSubOperations; 0123 SKGTESTERROR(QStringLiteral("REF:getSubOperations"), tracker.getSubOperations(oSubOperations), true) 0124 SKGTEST(QStringLiteral("REF:compare"), oSubOperations.count(), 1) 0125 0126 SKGTrackerObject track; 0127 SKGTESTERROR(QStringLiteral("REF:createTracker"), SKGTrackerObject::createTracker(&document1, QStringLiteral("track"), track, true), true) 0128 0129 SKGTESTERROR(QStringLiteral("OPE:setClosed"), tracker.setClosed(false), true) 0130 SKGTESTERROR(QStringLiteral("REF:save"), tracker.save(), true) 0131 SKGTESTERROR(QStringLiteral("REF:merge"), track.merge(tracker), true) 0132 0133 SKGTrackerObject trackBlank; 0134 SKGTESTERROR(QStringLiteral("REF:createTracker"), SKGTrackerObject::createTracker(&document1, QLatin1String(""), trackBlank, true), true) 0135 } 0136 } 0137 0138 0139 // End test 0140 SKGENDTEST() 0141 }