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

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 for bank widgets.
0008  *
0009  * @author Stephane MANKOWSKI / Guillaume DE BURE
0010  */
0011 #include "skgtestbankwidgets.h"
0012 #include "skgbkwidgetcollectiondesignerplugin.h"
0013 #include "skgdocumentbank.h"
0014 #include "skgquerycreator.h"
0015 #include "skgtestmacro.h"
0016 #include "skgunitcombobox.h"
0017 
0018 void SKGTESTBankWidgets::TestSKGUnitComboBox()
0019 {
0020     SKGDocumentBank doc;
0021     QVERIFY2(!doc.load(SKGTest::getTestPath(QStringLiteral("OUT")) % "/advice.skg"), "Load document failed");
0022 
0023     SKGUnitComboBox unitWidget(nullptr);
0024     unitWidget.setDocument(&doc);
0025     unitWidget.setWhereClauseCondition(QStringLiteral("t_type='S'"));
0026     SKGUnitObject unit = unitWidget.getUnit();
0027     unitWidget.setUnit(unit);
0028 
0029     unitWidget.setText(QStringLiteral("newunit"));
0030     SKGUnitObject newunit = unitWidget.getUnit();
0031 }
0032 
0033 void SKGTESTBankWidgets::TestSKGQueryCreator()
0034 {
0035     SKGDocumentBank doc;
0036     QVERIFY2(!doc.load(SKGTest::getTestPath(QStringLiteral("OUT")) % "/advice.skg"), "Load document failed");
0037 
0038     QStringList attributeForQuery;
0039     attributeForQuery << QStringLiteral("d_date") << QStringLiteral("t_number") << QStringLiteral("t_mode") << QStringLiteral("t_PAYEE") << QStringLiteral("t_comment") << QStringLiteral("t_REALCOMMENT") << QStringLiteral("t_REALCATEGORY") << QStringLiteral("t_status") << QStringLiteral("t_bookmarked") << QStringLiteral("t_imported") << QStringLiteral("t_TRANSFER") << QStringLiteral("t_UNIT") << QStringLiteral("t_ACCOUNT") << QStringLiteral("t_TOACCOUNT") << QStringLiteral("f_REALCURRENTAMOUNT") << QStringLiteral("t_REALREFUND") << QStringLiteral("f_BALANCE");
0040 
0041     SKGQueryCreator creator(nullptr);
0042     creator.setParameters(&doc, QStringLiteral("v_operation"), attributeForQuery);
0043     QCOMPARE(creator.getColumnsCount(), 0);
0044     QCOMPARE(creator.getLinesCount(), 1);
0045 
0046     QString cond = QStringLiteral("<!DOCTYPE SKGML><element> <!--OR--> <element>  <!--AND-->  <element operator=\"#ATT# LIKE '%#V1S#%'\" att2s=\"\" attribute=\"t_PAYEE\" att2=\"\" value=\"VIR CAF \" value2=\"\"/> </element></element>");
0047     creator.setXMLCondition(cond);
0048     QTest::qWait(100);
0049     QString result = creator.getXMLCondition();
0050 
0051     QVERIFY(result.contains(QStringLiteral("operator=\"#ATT# LIKE '%#V1S#%'\"")));
0052     QVERIFY(result.contains(QStringLiteral("att2s=\"\"")));
0053     QVERIFY(result.contains(QStringLiteral("attribute=\"t_PAYEE\"")));
0054     QVERIFY(result.contains(QStringLiteral("att2=\"\"")));
0055     QVERIFY(result.contains(QStringLiteral("value=\"VIR CAF \"")));
0056     QVERIFY(result.contains(QStringLiteral("value2=\"\"")));
0057 
0058     QCOMPARE(creator.getColumnsCount(), 1);
0059     QCOMPARE(creator.getLinesCount(), 2);
0060 
0061     creator.addNewLine();
0062     QCOMPARE(creator.getColumnsCount(), 1);
0063     QCOMPARE(creator.getLinesCount(), 3);
0064 
0065     creator.removeLine(0);
0066     creator.removeLine(0);
0067     QCOMPARE(creator.getColumnsCount(), 1);
0068     QCOMPARE(creator.getLinesCount(), 1);
0069 
0070     creator.removeColumn(0);
0071     QCOMPARE(creator.getColumnsCount(), 0);
0072     QCOMPARE(creator.getLinesCount(), 1);
0073 
0074     creator.removeLine(0);
0075     QCOMPARE(creator.getColumnsCount(), 0);
0076     QCOMPARE(creator.getLinesCount(), 1);
0077 }
0078 
0079 void SKGTESTBankWidgets::TestSKGBKWidgetCollectionDesignerPlugin()
0080 {
0081     SKGBKWidgetCollectionDesignerPlugin col(nullptr);
0082     QList<QDesignerCustomWidgetInterface*> items = col.customWidgets();
0083     for (auto item : qAsConst(items)) {
0084         QCOMPARE(item != nullptr, true);
0085 
0086         item->isContainer();
0087         QCOMPARE(item->isInitialized(), false);
0088         item->initialize(nullptr);
0089         QCOMPARE(item->isInitialized(), true);
0090         item->icon();
0091         QCOMPARE(item->domXml() != QLatin1String(""), true);
0092         QCOMPARE(item->group(), QStringLiteral("SKG Widgets"));
0093         QCOMPARE(item->includeFile() != QLatin1String(""), true);
0094         QCOMPARE(item->name() != QLatin1String(""), true);
0095         QCOMPARE(item->toolTip() != QLatin1String(""), true);
0096         QCOMPARE(item->whatsThis() != QLatin1String(""), true);
0097         QCOMPARE(item->createWidget(nullptr) != nullptr, true);
0098     }
0099 }
0100 
0101 QTEST_MAIN(SKGTESTBankWidgets)
0102