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 SKGPredicatCreator component.
0008  *
0009  * @author Stephane MANKOWSKI / Guillaume DE BURE
0010  */
0011 #include "skgtestpredicatcreator.h"
0012 #include "skgdocumentbank.h"
0013 #include "skgpredicatcreator.h"
0014 #include "skgquerycreator.h"
0015 
0016 void SKGTESTPredicatCreator::Test()
0017 {
0018     KLocalizedString::setApplicationDomain("skrooge");
0019 
0020     SKGDocumentBank doc;
0021     QStringList attributeForQuery;
0022     attributeForQuery << QStringLiteral("d_date") << QStringLiteral("t_number") << QStringLiteral("t_mode") << QStringLiteral("t_PAYEE") << QStringLiteral("p_prop") << QStringLiteral("t_status");
0023 
0024     SKGPredicatCreator d_col_s(nullptr, &doc, QStringLiteral("d_date"), false, attributeForQuery);
0025     d_col_s.setXmlDescription(d_col_s.xmlDescription());
0026     d_col_s.text();
0027 
0028     SKGPredicatCreator d_col_u(nullptr, &doc, QStringLiteral("d_date"), true, attributeForQuery);
0029     d_col_u.setXmlDescription(d_col_u.xmlDescription());
0030     d_col_u.text();
0031 
0032     SKGPredicatCreator i_col_s(nullptr, &doc, QStringLiteral("t_number"), false, attributeForQuery);
0033     i_col_s.setXmlDescription(i_col_s.xmlDescription());
0034     i_col_s.text();
0035 
0036     SKGPredicatCreator i_col_u(nullptr, &doc, QStringLiteral("t_number"), true, attributeForQuery);
0037     i_col_u.setXmlDescription(i_col_u.xmlDescription());
0038     i_col_u.text();
0039 
0040     SKGPredicatCreator t_col_s(nullptr, &doc, QStringLiteral("t_mode"), false, attributeForQuery);
0041     t_col_s.setXmlDescription(t_col_s.xmlDescription());
0042     t_col_s.text();
0043 
0044     SKGPredicatCreator t_col_u(nullptr, &doc, QStringLiteral("t_mode"), true, attributeForQuery);
0045     t_col_u.setXmlDescription(t_col_s.xmlDescription());
0046     t_col_u.text();
0047 
0048     SKGPredicatCreator t2_col_s(nullptr, &doc, QStringLiteral("t_PAYEE"), false, attributeForQuery);
0049     t2_col_s.setXmlDescription(t2_col_s.xmlDescription());
0050     t2_col_s.text();
0051 
0052     SKGPredicatCreator t2_col_u(nullptr, &doc, QStringLiteral("t_PAYEE"), true, attributeForQuery);
0053     t2_col_u.setXmlDescription(t2_col_u.xmlDescription());
0054     t2_col_u.text();
0055 
0056     SKGPredicatCreator p_col_s(nullptr, &doc, QStringLiteral("p_prop"), false, attributeForQuery);
0057     p_col_s.setXmlDescription(p_col_s.xmlDescription());
0058     p_col_s.text();
0059 
0060     SKGPredicatCreator p_col_u(nullptr, &doc, QStringLiteral("p_prop"), true, attributeForQuery);
0061     p_col_u.setXmlDescription(p_col_u.xmlDescription());
0062     p_col_u.text();
0063 
0064     SKGPredicatCreator t3_col_s(nullptr, &doc, QStringLiteral("t_status"), false, attributeForQuery);
0065     t3_col_s.setXmlDescription(t3_col_s.xmlDescription());
0066     t3_col_s.text();
0067 
0068     SKGPredicatCreator t3_col_u(nullptr, &doc, QStringLiteral("t_status"), true, attributeForQuery);
0069     t3_col_u.setXmlDescription(t3_col_u.xmlDescription());
0070     t3_col_u.text();
0071 
0072     QString xml = QStringLiteral("<!DOCTYPE SKGML>"
0073                                  "<element> <!--OR-->"
0074                                  "<element>  <!--AND-->"
0075                                  "<element attribute=\"d_date\" operator=\"STRFTIME('%Y',#ATT#)=STRFTIME('%Y',date('now', 'localtime', 'localtime'))\" />"
0076                                  "</element>"
0077                                  "</element>");
0078 
0079     SKGQueryCreator c1(nullptr);
0080     c1.setParameters(&doc, QStringLiteral("v_suboperation_consolidated"), attributeForQuery, false);
0081     c1.setXMLCondition(xml);
0082     c1.clearContents();
0083 
0084     SKGQueryCreator c2(nullptr);
0085     c2.setParameters(&doc, QStringLiteral("v_suboperation_consolidated"), attributeForQuery, true);
0086     c2.setXMLCondition(xml);
0087     c1.getXMLCondition();
0088 }
0089 
0090 QTEST_MAIN(SKGTESTPredicatCreator)
0091