1 /***************************************************************************
2  * SPDX-FileCopyrightText: 2021 S. MANKOWSKI stephane@mankowski.fr
3  * SPDX-FileCopyrightText: 2021 G. DE BURE support@mankowski.fr
4  * SPDX-License-Identifier: GPL-3.0-or-later
5  ***************************************************************************/
6 /** @file
7  * This file is a test script.
8  *
9  * @author Stephane MANKOWSKI / Guillaume DE BURE
10  */
11 #include "skgtestmacro.h"
12 #include "skgbankincludes.h"
13 #include "skgimportexportmanager.h"
14 
15 /**
16  * The main function of the unit test
17  * @param argc the number of arguments
18  * @param argv the list of arguments
19  */
main(int argc,char ** argv)20 int main(int argc, char** argv)
21 {
22     Q_UNUSED(argc)
23     Q_UNUSED(argv)
24 
25     // Init test
26     SKGINITTEST(true)
27 
28     {
29         // Test import GNUCASH
30         SKGDocumentBank document1;
31         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
32         SKGError err;
33         {
34             // Scope of the transaction
35             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
36             SKGImportExportManager impmissing(&document1, QUrl::fromLocalFile(QStringLiteral("/not-existing/missingfile.uncompressed")));
37             SKGTESTERROR(QStringLiteral("imp1.importFile"), impmissing.importFile(), false)
38 
39             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/test_data.uncompressed"));
40             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
41         }
42 
43         {
44             SKGAccountObject account(&document1);
45             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Accounts Receivable")), true)
46             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
47             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("231.11"))
48         }
49     }
50 
51     {
52         // Test import GNUCASH
53         SKGDocumentBank document1;
54         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
55         SKGError err;
56         {
57             // Scope of the transaction
58             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
59 
60             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/all.uncompressed"));
61             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
62         }
63 
64         {
65             SKGAccountObject account(&document1);
66             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("COMPTE COURANT")), true)
67             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
68             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-700"))
69         }
70 
71         {
72             SKGAccountObject account(&document1);
73             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("COMPTE EPARGNE")), true)
74             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
75             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("250"))
76         }
77 
78         {
79             SKGAccountObject account(&document1);
80             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Actif")), true)
81             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
82             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-420"))
83         }
84 
85         {
86             SKGAccountObject account(&document1);
87             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("TITRE")), true)
88             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
89             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("520"))
90         }
91     }
92 
93     {
94         // Test import GNUCASH
95         SKGDocumentBank document1;
96         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
97         SKGError err;
98         {
99             // Scope of the transaction
100             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
101 
102             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/initial_balance.uncompressed"));
103             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
104         }
105 
106         {
107             SKGAccountObject account(&document1);
108             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
109             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
110             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("100"))
111         }
112 
113         int nb = 0;
114         SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects(unit, PRIMARY)"), document1.getNbObjects(QStringLiteral("unit"), QStringLiteral("t_type='1'"), nb), true)
115         SKGTEST(QStringLiteral("GNUCASH:getNbObjects(unit, PRIMARY)"), nb, 1)
116         SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects(unit, SHARE)"), document1.getNbObjects(QStringLiteral("unit"), QStringLiteral("t_type='S'"), nb), true)
117         SKGTEST(QStringLiteral("GNUCASH:getNbObjects(unit, SHARE)"), nb, 13)
118     }
119 
120     {
121         // Test import GNUCASH
122         SKGDocumentBank document1;
123         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
124         SKGError err;
125         {
126             // Scope of the transaction
127             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
128 
129             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/transfer-CPP-vers-PEE.uncompressed"));
130             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
131         }
132 
133         {
134             SKGAccountObject account(&document1);
135             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
136             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
137             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("750"))
138         }
139 
140         {
141             SKGAccountObject account(&document1);
142             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CEL Donald")), true)
143             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
144             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("150"))
145         }
146 
147         {
148             SKGAccountObject account(&document1);
149             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("PEEs")), true)
150             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
151             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("190"))
152         }
153 
154         {
155             int nb = 0;
156             SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects"), document1.getNbObjects(QStringLiteral("category"), QLatin1String(""), nb), true)
157             SKGTEST(QStringLiteral("GNUCASH:getNbObjects"), nb, 27)
158         }
159     }
160 
161     {
162         // Test import GNUCASH
163         SKGDocumentBank document1;
164         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
165         SKGError err;
166         {
167             // Scope of the transaction
168             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
169 
170             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/transfer-PEE-vers-CCP.uncompressed"));
171             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
172         }
173 
174         {
175             SKGAccountObject account(&document1);
176             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
177             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
178             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("1140"))
179         }
180 
181         {
182             SKGAccountObject account(&document1);
183             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CEL Donald")), true)
184             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
185             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("150"))
186         }
187 
188         {
189             SKGAccountObject account(&document1);
190             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("PEEs")), true)
191             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
192             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("100"))
193         }
194 
195         {
196             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
197             SKGCategoryObject cat;
198             SKGTESTERROR(QStringLiteral("GNUCASH.createPathCategory"), SKGCategoryObject::createPathCategory(&document1, QStringLiteral("Depenses > Frais bancaires"), cat), true)
199             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(cat.getCurrentAmount()), QStringLiteral("-10"))
200         }
201 
202         SKGTESTERROR(QStringLiteral("DOC:dump"), document1.dump(DUMPCATEGORY), true)
203     }
204 
205     {
206         // Test import GNUCASH
207         SKGDocumentBank document1;
208         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
209         SKGError err;
210         {
211             // Scope of the transaction
212             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
213 
214             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/interet-revenue-frais.gnucash"));
215             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
216         }
217 
218         {
219             SKGAccountObject account(&document1);
220             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
221             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
222             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("750"))
223         }
224 
225         {
226             SKGAccountObject account(&document1);
227             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CEL Donald")), true)
228             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
229             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("150"))
230         }
231 
232         {
233             SKGAccountObject account(&document1);
234             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("PEEs")), true)
235             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
236             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("640"))
237         }
238     }
239 
240     {
241         // Test import GNUCASH
242         SKGDocumentBank document1;
243         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
244         SKGError err;
245         {
246             // Scope of the transaction
247             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
248 
249             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/interet-revenue-frais-emprunt.gnucash"));
250             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
251         }
252 
253         {
254             SKGAccountObject account(&document1);
255             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("CCP")), true)
256             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
257             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("250"))
258         }
259         {
260             SKGAccountObject account(&document1);
261             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Emprunts")), true)
262             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
263             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-99620"))
264         }
265         {
266             SKGAccountObject account(&document1);
267             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Maison")), true)
268             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
269             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("100000"))
270         }
271     }
272 
273     {
274         // Test import GNUCASH
275         SKGDocumentBank document1;
276         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
277         SKGError err;
278         {
279             // Scope of the transaction
280             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
281 
282             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/rapprochement-incorrect.uncompressed"));
283             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
284         }
285 
286         {
287             int nb = 0;
288             SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects"), document1.getNbObjects(QStringLiteral("operation"), QStringLiteral("t_status='Y'"), nb), true)
289             SKGTEST(QStringLiteral("GNUCASH:getNbObjects"), nb, 7)
290         }
291     }
292 
293     {
294         // Test import GNUCASH
295         SKGDocumentBank document1;
296         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
297         SKGError err;
298         {
299             // Scope of the transaction
300             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
301 
302             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/scheduled-action.uncompressed"));
303             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
304         }
305 
306         {
307             SKGObjectBase::SKGListSKGObjectBase recurrentoperations;
308             SKGTESTERROR(QStringLiteral("GNUCASH:SKGListSKGObjectBase"), document1.getObjects(QStringLiteral("recurrentoperation"), QLatin1String(""), recurrentoperations), true)
309             SKGTEST(QStringLiteral("GNUCASH:nb"), recurrentoperations.count(), 1)
310             if (recurrentoperations.count() == 1) {
311                 SKGRecurrentOperationObject recu(recurrentoperations.at(0));
312                 SKGTEST(QStringLiteral("GNUCASH:getDate"), recu.getDate().toString(), QDate(2010, 03, 02).toString())
313                 SKGTEST(QStringLiteral("GNUCASH:getAutoWriteDays"), recu.getAutoWriteDays(), 10)
314                 SKGTEST(QStringLiteral("GNUCASH:getPeriodIncrement"), recu.getPeriodIncrement(), 1)
315                 SKGTEST(QStringLiteral("GNUCASH:getPeriodUnit"), static_cast<unsigned int>(recu.getPeriodUnit()), static_cast<unsigned int>(SKGRecurrentOperationObject::MONTH))
316                 SKGTEST(QStringLiteral("GNUCASH:getWarnDays"), recu.getWarnDays(), 0)
317                 SKGTESTBOOL("GNUCASH:isAutoWriteEnabled", recu.isAutoWriteEnabled(), false)
318                 SKGTESTBOOL("GNUCASH:isWarnEnabled", recu.isWarnEnabled(), false)
319                 SKGTESTBOOL("GNUCASH:hasTimeLimit", recu.hasTimeLimit(), false)
320             }
321         }
322     }
323 
324     {
325         // Test import GNUCASH - bug 228808
326         SKGDocumentBank document1;
327         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
328         SKGError err;
329         {
330             // Scope of the transaction
331             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
332 
333             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/228808.gnc"));
334             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
335         }
336 
337 
338         {
339             SKGObjectBase::SKGListSKGObjectBase recurrentoperations;
340             SKGTESTERROR(QStringLiteral("GNUCASH:SKGListSKGObjectBase"), document1.getObjects(QStringLiteral("recurrentoperation"), QStringLiteral("1=1 ORDER BY d_date"), recurrentoperations), true)
341             SKGTEST(QStringLiteral("GNUCASH:nb"), recurrentoperations.count(), 2)
342             if (recurrentoperations.count() == 2) {
343                 SKGRecurrentOperationObject recu(recurrentoperations.at(0));
344                 SKGOperationObject op;
345                 SKGTESTERROR(QStringLiteral("GNUCASH:getParentOperation"), recu.getParentOperation(op), true)
346                 SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), op.getCurrentAmount(), -50)
347 
348                 recu = recurrentoperations.at(1);
349                 SKGTESTERROR(QStringLiteral("GNUCASH:getParentOperation"), recu.getParentOperation(op), true)
350                 SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), op.getCurrentAmount(), -18.75)
351             }
352         }
353     }
354 
355     {
356         // Test import GNUCASH - bug 228904
357         SKGDocumentBank document1;
358         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
359         SKGError err;
360         {
361             // Scope of the transaction
362             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
363 
364             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/228904.gnucash"));
365             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
366         }
367 
368 
369         {
370             SKGObjectBase::SKGListSKGObjectBase recurrentoperations;
371             SKGTESTERROR(QStringLiteral("GNUCASH:SKGListSKGObjectBase"), document1.getObjects(QStringLiteral("recurrentoperation"), QStringLiteral("1=1 ORDER BY d_date"), recurrentoperations), true)
372             SKGTEST(QStringLiteral("GNUCASH:nb"), recurrentoperations.count(), 3)
373         }
374     }
375 
376     {
377         // Test import 228901
378         SKGDocumentBank document1;
379         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
380         SKGError err;
381         {
382             // Scope of the transaction
383             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
384 
385             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/228901.gnucash"));
386             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
387         }
388 
389         {
390             SKGAccountObject account(&document1);
391             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Compte emprunt")), true)
392             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
393             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-9476.01"))
394         }
395 
396         // Test second import
397         {
398             // Scope of the transaction
399             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
400 
401             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/228901.gnucash"));
402             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
403         }
404     }
405 
406     {
407         // Test import 234608
408         SKGDocumentBank document1;
409         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
410         SKGError err;
411         {
412             // Scope of the transaction
413             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
414 
415             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/234608.gnc"));
416             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
417         }
418     }
419 
420     {
421         // Test import 234597
422         SKGDocumentBank document1;
423         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
424         SKGError err;
425         {
426             // Scope of the transaction
427             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
428 
429             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/234597.gnc"));
430             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
431         }
432         {
433             int nb = 0;
434             SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects"), document1.getNbObjects(QStringLiteral("account"), QLatin1String(""), nb), true)
435             SKGTEST(QStringLiteral("GNUCASH:getNbObjects"), nb, 11)
436         }
437         {
438             SKGAccountObject account(&document1);
439             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Compte cheques")), true)
440             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
441             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-260"))
442         }
443         {
444             SKGAccountObject account(&document1);
445             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Compte cheques (2)")), true)
446             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
447             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("-40"))
448         }
449         {
450             SKGAccountObject account(&document1);
451             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Argent du porte-monnaie")), true)
452             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
453             SKGTEST(QStringLiteral("GNUCASH:getCurrentAmount"), SKGServices::doubleToString(account.getCurrentAmount()), QStringLiteral("0"))
454         }
455     }
456 
457     {
458         // Test import 243738
459         SKGDocumentBank document1;
460         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
461         SKGError err;
462         {
463             // Scope of the transaction
464             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
465 
466             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/243738.gnucash"));
467             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
468         }
469     }
470 
471     {
472         // Test import without book
473         SKGDocumentBank document1;
474         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
475         SKGError err;
476         {
477             // Scope of the transaction
478             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
479 
480             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/without_book.gnucash"));
481             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
482         }
483     }
484 
485     {
486         // Test import 302388
487         SKGDocumentBank document1;
488         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
489         SKGError err;
490         {
491             // Scope of the transaction
492             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
493 
494             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/302388.gnc"));
495             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), false)
496         }
497     }
498 
499     {
500         // Test import 325174
501         SKGDocumentBank document1;
502         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
503         SKGError err;
504         {
505             // Scope of the transaction
506             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
507 
508             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/325174.gnucash"));
509             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
510         }
511 
512         int nb = 0;
513         SKGTESTERROR(QStringLiteral("GNUCASH:getNbObjects(account)"), document1.getNbObjects(QStringLiteral("account"), QLatin1String(""), nb), true)
514         SKGTEST(QStringLiteral("GNUCASH:getNbObjects(account)"), nb, 11)
515     }
516 
517     {
518         // Test import wallet
519         SKGDocumentBank document1;
520         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
521         SKGError err;
522         {
523             // Scope of the transaction
524             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
525 
526             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/wallet.gnucash"));
527             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
528         }
529 
530         {
531             SKGAccountObject account(&document1);
532             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Espece")), true)
533             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
534             SKGBankObject bank;
535             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.getBank(bank), true)
536             SKGTEST(QStringLiteral("GNUCASH:getName"), bank.getName(), QLatin1String(""))
537         }
538         {
539             SKGAccountObject account(&document1);
540             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Courant")), true)
541             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
542             SKGBankObject bank;
543             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.getBank(bank), true)
544             SKGTEST(QStringLiteral("GNUCASH:getName"), bank.getName(), QStringLiteral("GNUCASH"))
545         }
546     }
547 
548 
549     {
550         // 407257
551         SKGDocumentBank document1;
552         SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true)
553         SKGError err;
554         {
555             // Scope of the transaction
556             SKGBEGINTRANSACTION(document1, QStringLiteral("IMPORT_GNUCASH"), err)
557 
558             SKGImportExportManager imp1(&document1, QUrl::fromLocalFile(SKGTest::getTestPath(QStringLiteral("IN")) % "/skgtestimportgnucash/407257.gnucash"));
559             SKGTESTERROR(QStringLiteral("GNUCASH.importFile"), imp1.importFile(), true)
560         }
561 
562         {
563             SKGAccountObject account(&document1);
564             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("AccountName (Nom de compte)")), true)
565             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
566             SKGTEST(QStringLiteral("GNUCASH:getNumber"), account.getNumber(), QStringLiteral("123_AccountCode(CodeCompte)"))
567             SKGTEST(QStringLiteral("GNUCASH:getComment"), account.getComment(), QStringLiteral("DescriptionAccount(Compte123)"))
568 
569             SKGUnitObject unit;
570             SKGTESTERROR(QStringLiteral("GNUCASH.getUnit"), account.getUnit(unit), true)
571             SKGTEST(QStringLiteral("GNUCASH:getName"), unit.getName(), QStringLiteral("Canadian Dollar (CAD)"))
572         }
573 
574         {
575             SKGAccountObject account(&document1);
576             SKGTESTERROR(QStringLiteral("GNUCASH.setName"), account.setName(QStringLiteral("Account2Name(no transaction)")), true)
577             SKGTESTERROR(QStringLiteral("GNUCASH.load"), account.load(), true)
578         }
579     }
580     // End test
581     SKGENDTEST()
582 }
583