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

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 "skgimportexportmanager.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         // Test import GNUCASH
0030         SKGDocumentBank document1;
0031         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0032         SKGError err;
0033         {
0034             // Scope of the transaction
0035             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0036             SKGImportExportManager impmissing(&document1, QUrl::fromLocalFile(QStringLiteral("/not-existing/missingfile.uncompressed")));
0037             SKGTESTERROR(QStringLiteral("imp1.importFile"), impmissing.importFile(), false)
0038 
0039             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/test_data.uncompressed"));
0040             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0041         }
0042 
0043         {
0044             SKGAccountObject account(&document1);
0045             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Accounts Receivable")), true)
0046             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0047             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("231.11"))
0048         }
0049     }
0050 
0051     {
0052         // Test import GNUCASH
0053         SKGDocumentBank document1;
0054         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0055         SKGError err;
0056         {
0057             // Scope of the transaction
0058             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0059 
0060             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/all.uncompressed"));
0061             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0062         }
0063 
0064         {
0065             SKGAccountObject account(&document1);
0066             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("COMPTE COURANT")), true)
0067             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0068             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-700"))
0069         }
0070 
0071         {
0072             SKGAccountObject account(&document1);
0073             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("COMPTE EPARGNE")), true)
0074             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0075             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("250"))
0076         }
0077 
0078         {
0079             SKGAccountObject account(&document1);
0080             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Actif")), true)
0081             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0082             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-420"))
0083         }
0084 
0085         {
0086             SKGAccountObject account(&document1);
0087             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("TITRE")), true)
0088             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0089             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("520"))
0090         }
0091     }
0092 
0093     {
0094         // Test import GNUCASH
0095         SKGDocumentBank document1;
0096         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0097         SKGError err;
0098         {
0099             // Scope of the transaction
0100             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0101 
0102             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/initial_balance.uncompressed"));
0103             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0104         }
0105 
0106         {
0107             SKGAccountObject account(&document1);
0108             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
0109             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0110             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("100"))
0111         }
0112 
0113         int nb = 0;
0114         SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects(unit, PRIMARY)"), document1.getNbObjects(QStringLiteral("unit"), QStringLiteral("t_type='1'"), nb), true)
0115         SKGTEST(QStringLiteral("GNUCASH:getNbObjects(unit, PRIMARY)"), nb, 1)
0116         SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects(unit, SHARE)"), document1.getNbObjects(QStringLiteral("unit"), QStringLiteral("t_type='S'"), nb), true)
0117         SKGTEST(QStringLiteral("GNUCASH:getNbObjects(unit, SHARE)"), nb, 13)
0118     }
0119 
0120     {
0121         // Test import GNUCASH
0122         SKGDocumentBank document1;
0123         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0124         SKGError err;
0125         {
0126             // Scope of the transaction
0127             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0128 
0129             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/transfer-CPP-vers-PEE.uncompressed"));
0130             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0131         }
0132 
0133         {
0134             SKGAccountObject account(&document1);
0135             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
0136             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0137             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("750"))
0138         }
0139 
0140         {
0141             SKGAccountObject account(&document1);
0142             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CEL Donald")), true)
0143             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0144             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("150"))
0145         }
0146 
0147         {
0148             SKGAccountObject account(&document1);
0149             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("PEEs")), true)
0150             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0151             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("190"))
0152         }
0153 
0154         {
0155             int nb = 0;
0156             SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects"), document1.getNbObjects(QStringLiteral("category"), QLatin1String(""), nb), true)
0157             SKGTEST(QStringLiteral("GNUCASH:getNbObjects"), nb, 27)
0158         }
0159     }
0160 
0161     {
0162         // Test import GNUCASH
0163         SKGDocumentBank document1;
0164         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0165         SKGError err;
0166         {
0167             // Scope of the transaction
0168             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0169 
0170             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/transfer-PEE-vers-CCP.uncompressed"));
0171             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0172         }
0173 
0174         {
0175             SKGAccountObject account(&document1);
0176             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
0177             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0178             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("1140"))
0179         }
0180 
0181         {
0182             SKGAccountObject account(&document1);
0183             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CEL Donald")), true)
0184             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0185             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("150"))
0186         }
0187 
0188         {
0189             SKGAccountObject account(&document1);
0190             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("PEEs")), true)
0191             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0192             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("100"))
0193         }
0194 
0195         {
0196             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0197             SKGCategoryObject cat;
0198             SKGTESTERROR(QStringLiteral("GNUCASH.createPathCategory"), SKGCategoryObject::createPathCategory(&document1, QStringLiteral("Depenses > Frais bancaires"), cat), true)
0199             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(cat.getCurrentAmount()), QStringLiteral("-10"))
0200         }
0201 
0202         SKGTESTERROR(QStringLiteral("DOC:dump"), document1.dump(DUMPCATEGORY), true)
0203     }
0204 
0205     {
0206         // Test import GNUCASH
0207         SKGDocumentBank document1;
0208         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0209         SKGError err;
0210         {
0211             // Scope of the transaction
0212             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0213 
0214             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/interet-revenue-frais.gnucash"));
0215             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0216         }
0217 
0218         {
0219             SKGAccountObject account(&document1);
0220             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
0221             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0222             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("750"))
0223         }
0224 
0225         {
0226             SKGAccountObject account(&document1);
0227             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CEL Donald")), true)
0228             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0229             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("150"))
0230         }
0231 
0232         {
0233             SKGAccountObject account(&document1);
0234             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("PEEs")), true)
0235             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0236             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("640"))
0237         }
0238     }
0239 
0240     {
0241         // Test import GNUCASH
0242         SKGDocumentBank document1;
0243         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0244         SKGError err;
0245         {
0246             // Scope of the transaction
0247             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0248 
0249             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/interet-revenue-frais-emprunt.gnucash"));
0250             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0251         }
0252 
0253         {
0254             SKGAccountObject account(&document1);
0255             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
0256             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0257             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("250"))
0258         }
0259         {
0260             SKGAccountObject account(&document1);
0261             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Emprunts")), true)
0262             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0263             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-99620"))
0264         }
0265         {
0266             SKGAccountObject account(&document1);
0267             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Maison")), true)
0268             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0269             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("100000"))
0270         }
0271     }
0272 
0273     {
0274         // Test import GNUCASH
0275         SKGDocumentBank document1;
0276         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0277         SKGError err;
0278         {
0279             // Scope of the transaction
0280             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0281 
0282             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/rapprochement-incorrect.uncompressed"));
0283             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0284         }
0285 
0286         {
0287             int nb = 0;
0288             SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects"), document1.getNbObjects(QStringLiteral("operation"), QStringLiteral("t_status='Y'"), nb), true)
0289             SKGTEST(QStringLiteral("GNUCASH:getNbObjects"), nb, 7)
0290         }
0291     }
0292 
0293     {
0294         // Test import GNUCASH
0295         SKGDocumentBank document1;
0296         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0297         SKGError err;
0298         {
0299             // Scope of the transaction
0300             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0301 
0302             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/scheduled-action.uncompressed"));
0303             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0304         }
0305 
0306         {
0307             SKGObjectBase::SKGListSKGObjectBase recurrentoperations;
0308             SKGTESTERROR(QStringLiteral("GNUCASH:SKGListSKGObjectBase"), document1.getObjects(QStringLiteral("recurrentoperation"), QLatin1String(""), recurrentoperations), true)
0309             SKGTEST(QStringLiteral("GNUCASH:nb"), recurrentoperations.count(), 1)
0310             if (recurrentoperations.count() == 1) {
0311                 SKGRecurrentOperationObject recu(recurrentoperations.at(0));
0312                 SKGTEST(QStringLiteral("GNUCASH:getDate"), recu.getDate().toString(), QDate(2010, 03, 02).toString())
0313                 SKGTEST(QStringLiteral("GNUCASH:getAutoWriteDays"), recu.getAutoWriteDays(), 10)
0314                 SKGTEST(QStringLiteral("GNUCASH:getPeriodIncrement"), recu.getPeriodIncrement(), 1)
0315                 SKGTEST(QStringLiteral("GNUCASH:getPeriodUnit"), static_cast<unsigned int>(recu.getPeriodUnit()), static_cast<unsigned int>(SKGRecurrentOperationObject::MONTH))
0316                 SKGTEST(QStringLiteral("GNUCASH:getWarnDays"), recu.getWarnDays(), 0)
0317                 SKGTESTBOOL("GNUCASH:isAutoWriteEnabled", recu.isAutoWriteEnabled(), false)
0318                 SKGTESTBOOL("GNUCASH:isWarnEnabled", recu.isWarnEnabled(), false)
0319                 SKGTESTBOOL("GNUCASH:hasTimeLimit", recu.hasTimeLimit(), false)
0320             }
0321         }
0322     }
0323 
0324     {
0325         // Test import GNUCASH - bug 228808
0326         SKGDocumentBank document1;
0327         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0328         SKGError err;
0329         {
0330             // Scope of the transaction
0331             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0332 
0333             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/228808.gnc"));
0334             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0335         }
0336 
0337 
0338         {
0339             SKGObjectBase::SKGListSKGObjectBase recurrentoperations;
0340             SKGTESTERROR(QStringLiteral("GNUCASH:SKGListSKGObjectBase"), document1.getObjects(QStringLiteral("recurrentoperation"), QStringLiteral("1=1 ORDER BY d_date"), recurrentoperations), true)
0341             SKGTEST(QStringLiteral("GNUCASH:nb"), recurrentoperations.count(), 2)
0342             if (recurrentoperations.count() == 2) {
0343                 SKGRecurrentOperationObject recu(recurrentoperations.at(0));
0344                 SKGOperationObject op;
0345                 SKGTESTERROR(QStringLiteral("GNUCASH:getParentOperation"), recu.getParentOperation(op), true)
0346                 SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), op.getCurrentAmount(), -50)
0347 
0348                 recu = recurrentoperations.at(1);
0349                 SKGTESTERROR(QStringLiteral("GNUCASH:getParentOperation"), recu.getParentOperation(op), true)
0350                 SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), op.getCurrentAmount(), -18.75)
0351             }
0352         }
0353     }
0354 
0355     {
0356         // Test import GNUCASH - bug 228904
0357         SKGDocumentBank document1;
0358         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0359         SKGError err;
0360         {
0361             // Scope of the transaction
0362             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0363 
0364             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/228904.gnucash"));
0365             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0366         }
0367 
0368 
0369         {
0370             SKGObjectBase::SKGListSKGObjectBase recurrentoperations;
0371             SKGTESTERROR(QStringLiteral("GNUCASH:SKGListSKGObjectBase"), document1.getObjects(QStringLiteral("recurrentoperation"), QStringLiteral("1=1 ORDER BY d_date"), recurrentoperations), true)
0372             SKGTEST(QStringLiteral("GNUCASH:nb"), recurrentoperations.count(), 3)
0373         }
0374     }
0375 
0376     {
0377         // Test import 228901
0378         SKGDocumentBank document1;
0379         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0380         SKGError err;
0381         {
0382             // Scope of the transaction
0383             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0384 
0385             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/228901.gnucash"));
0386             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0387         }
0388 
0389         {
0390             SKGAccountObject account(&document1);
0391             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Compte emprunt")), true)
0392             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0393             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-9476.01"))
0394         }
0395 
0396         // Test second import
0397         {
0398             // Scope of the transaction
0399             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0400 
0401             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/228901.gnucash"));
0402             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0403         }
0404     }
0405 
0406     {
0407         // Test import 234608
0408         SKGDocumentBank document1;
0409         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0410         SKGError err;
0411         {
0412             // Scope of the transaction
0413             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0414 
0415             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/234608.gnc"));
0416             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0417         }
0418     }
0419 
0420     {
0421         // Test import 234597
0422         SKGDocumentBank document1;
0423         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0424         SKGError err;
0425         {
0426             // Scope of the transaction
0427             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0428 
0429             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/234597.gnc"));
0430             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0431         }
0432         {
0433             int nb = 0;
0434             SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects"), document1.getNbObjects(QStringLiteral("account"), QLatin1String(""), nb), true)
0435             SKGTEST(QStringLiteral("GNUCASH:getNbObjects"), nb, 11)
0436         }
0437         {
0438             SKGAccountObject account(&document1);
0439             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Compte cheques")), true)
0440             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0441             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-260"))
0442         }
0443         {
0444             SKGAccountObject account(&document1);
0445             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Compte cheques (2)")), true)
0446             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0447             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-40"))
0448         }
0449         {
0450             SKGAccountObject account(&document1);
0451             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Argent du porte-monnaie")), true)
0452             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0453             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("0"))
0454         }
0455     }
0456 
0457     {
0458         // Test import 243738
0459         SKGDocumentBank document1;
0460         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0461         SKGError err;
0462         {
0463             // Scope of the transaction
0464             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0465 
0466             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/243738.gnucash"));
0467             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0468         }
0469     }
0470 
0471     {
0472         // Test import without book
0473         SKGDocumentBank document1;
0474         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0475         SKGError err;
0476         {
0477             // Scope of the transaction
0478             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0479 
0480             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/without_book.gnucash"));
0481             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0482         }
0483     }
0484 
0485     {
0486         // Test import 302388
0487         SKGDocumentBank document1;
0488         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0489         SKGError err;
0490         {
0491             // Scope of the transaction
0492             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0493 
0494             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/302388.gnc"));
0495             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0496         }
0497     }
0498 
0499     {
0500         // Test import 325174
0501         SKGDocumentBank document1;
0502         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0503         SKGError err;
0504         {
0505             // Scope of the transaction
0506             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0507 
0508             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/325174.gnucash"));
0509             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0510         }
0511 
0512         int nb = 0;
0513         SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects(account)"), document1.getNbObjects(QStringLiteral("account"), QLatin1String(""), nb), true)
0514         SKGTEST(QStringLiteral("GNUCASH:getNbObjects(account)"), nb, 11)
0515     }
0516 
0517     {
0518         // Test import wallet
0519         SKGDocumentBank document1;
0520         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0521         SKGError err;
0522         {
0523             // Scope of the transaction
0524             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0525 
0526             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/wallet.gnucash"));
0527             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0528         }
0529 
0530         {
0531             SKGAccountObject account(&document1);
0532             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Espece")), true)
0533             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0534             SKGBankObject bank;
0535             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.getBank(bank), true)
0536             SKGTEST(QStringLiteral("GNUCASH:getName"), bank.getName(), QLatin1String(""))
0537         }
0538         {
0539             SKGAccountObject account(&document1);
0540             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Courant")), true)
0541             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0542             SKGBankObject bank;
0543             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.getBank(bank), true)
0544             SKGTEST(QStringLiteral("GNUCASH:getName"), bank.getName(), QStringLiteral("GNUCASH"))
0545         }
0546     }
0547 
0548 
0549     {
0550         // 407257
0551         SKGDocumentBank document1;
0552         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
0553         SKGError err;
0554         {
0555             // Scope of the transaction
0556             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
0557 
0558             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/407257.gnucash"));
0559             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
0560         }
0561 
0562         {
0563             SKGAccountObject account(&document1);
0564             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("AccountName (Nom de compte)")), true)
0565             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0566             SKGTEST(QStringLiteral("GNUCASH:getNumber"), account.getNumber(), QStringLiteral("123_AccountCode(CodeCompte)"))
0567             SKGTEST(QStringLiteral("GNUCASH:getComment"), account.getComment(), QStringLiteral("DescriptionAccount(Compte123)"))
0568 
0569             SKGUnitObject unit;
0570             SKGTESTERROR(QStringLiteral("GNUCASH.getUnit"), account.getUnit(unit), true)
0571             SKGTEST(QStringLiteral("GNUCASH:getName"), unit.getName(), QStringLiteral("Canadian Dollar (CAD)"))
0572         }
0573 
0574         {
0575             SKGAccountObject account(&document1);
0576             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Account2Name(no transaction)")), true)
0577             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
0578         }
0579     }
0580     // End test
0581     SKGENDTEST()
0582 }