File indexing completed on 2024-05-12 16:45:25

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             SKGPayeeObject payee(&document1);
0071             SKGPayeeObject payeeCopy(payee);
0072             SKGPayeeObject payeeCopy2(static_cast<SKGObjectBase>(payee));
0073             SKGTESTERROR(QStringLiteral("REF:setName"), payee.setName(QStringLiteral("payee")), true)
0074             SKGTESTERROR(QStringLiteral("REF:setAddress"), payee.setAddress(QStringLiteral("address")), true)
0075             SKGTESTBOOL("REF:isBookmarked", payee.isBookmarked(), false)
0076             SKGTESTERROR(QStringLiteral("REF:bookmark"), payee.bookmark(true), true)
0077             SKGTESTBOOL("REF:isBookmarked", payee.isBookmarked(), true)
0078 
0079             SKGTESTBOOL("REF:isClosed", payee.isClosed(), false)
0080             SKGTESTERROR(QStringLiteral("REF:setClosed"), payee.setClosed(true), true)
0081             SKGTESTBOOL("REF:isClosed", payee.isClosed(), true)
0082 
0083             SKGTESTERROR(QStringLiteral("REF:save"), payee.save(), true)
0084             SKGTEST(QStringLiteral("REF:getName"), payee.getName(), QStringLiteral("payee"))
0085             SKGTEST(QStringLiteral("REF:getAddress"), payee.getAddress(), QStringLiteral("address"))
0086 
0087             SKGTESTERROR(QStringLiteral("OPE:setPayee"), op.setPayee(payee), true)
0088             SKGTESTERROR(QStringLiteral("OPE:save"), op.save(), true)
0089             SKGPayeeObject payee2;
0090             SKGTESTERROR(QStringLiteral("OPE:getPayee"), op.getPayee(payee2), true)
0091             SKGTESTBOOL("OPE:compare", (payee == payee2), true)
0092 
0093             SKGCategoryObject cat;
0094             SKGTESTERROR(QStringLiteral("REF:getCategory"), payee.getCategory(cat), false)
0095 
0096             SKGTESTERROR(QStringLiteral("CAT:createPathCategory"), SKGCategoryObject::createPathCategory(&document1, QStringLiteral("A"), cat), true)
0097             SKGTESTERROR(QStringLiteral("REF:setCategory"), payee.setCategory(cat), true)
0098             SKGTESTERROR(QStringLiteral("REF:getCategory"), payee.getCategory(cat), true)
0099 
0100             SKGTESTERROR(QStringLiteral("REF:save"), payee.save(), true)
0101             SKGTESTERROR(QStringLiteral("REF:load"), payee.load(), true)
0102 
0103             SKGPayeeObject pay;
0104             SKGTESTERROR(QStringLiteral("REF:createPayee"), SKGPayeeObject::createPayee(&document1, QStringLiteral("pay"), pay, true), true)
0105 
0106             SKGTEST(QStringLiteral("DOC:getCategoryForPayee"), document1.getCategoryForPayee(QStringLiteral("payee")), QStringLiteral("A"))
0107 
0108             // Merge
0109             SKGTESTERROR(QStringLiteral("CAT:merge"), payee2.merge(pay), true)
0110         }
0111     }
0112 
0113     // End test
0114     SKGENDTEST()
0115 }