File indexing completed on 2024-05-19 16:18: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 script. 0008 * 0009 * @author Stephane MANKOWSKI / Guillaume DE BURE 0010 */ 0011 #include "skgtestmacro.h" 0012 #include "skgbankincludes.h" 0013 0014 /** 0015 * The main function of the unit test 0016 * @param argc the number of arguments 0017 * @param argv the list of arguments 0018 */ 0019 int main(int argc, char** argv) 0020 { 0021 Q_UNUSED(argc) 0022 Q_UNUSED(argv) 0023 0024 // Init test 0025 SKGINITTEST(true) 0026 0027 QDate now = QDate::currentDate(); 0028 0029 { 0030 // Test objectbase 0031 SKGDocumentBank document1; 0032 SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true) 0033 SKGError err; 0034 { 0035 SKGTEST(QStringLiteral("DOC:getDisplay"), document1.getDisplay(QStringLiteral("v_node.unknown")), QStringLiteral("v_node.unknown")) 0036 SKGTEST(QStringLiteral("DOC:getDisplay"), document1.getDisplay(QStringLiteral("t_comment")), QStringLiteral("Comment")) 0037 SKGTEST(QStringLiteral("DOC:getDisplay"), document1.getDisplay(QStringLiteral("p_Test")), QStringLiteral("Test")) 0038 SKGTEST(QStringLiteral("DOC:getDisplay"), document1.getDisplay(QStringLiteral("operation.p_Test")), QStringLiteral("operation.Test")) 0039 0040 SKGServices::SKGAttributesList undoredoAttributes; 0041 SKGTESTERROR(QStringLiteral("OBJBASE:getAttributesDescription)"), document1.getAttributesDescription(QStringLiteral("doctransaction"), undoredoAttributes), true) 0042 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributes.count"), undoredoAttributes.count(), 7) 0043 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributes.name"), undoredoAttributes[0].name, QStringLiteral("id")) 0044 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributes.type"), static_cast<unsigned int>(undoredoAttributes[0].type), static_cast<unsigned int>(SKGServices::ID)) 0045 SKGTESTBOOL("OBJBASE:undoredoAttributes.notnull", undoredoAttributes[0].notnull, false) 0046 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributes.defaultvalue"), undoredoAttributes[0].defaultvalue, QLatin1String("")) 0047 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributes.name"), undoredoAttributes[2].name, QStringLiteral("t_mode")) 0048 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributes.type"), static_cast<unsigned int>(undoredoAttributes[2].type), static_cast<unsigned int>(SKGServices::TEXT)) 0049 SKGTESTBOOL("OBJBASE:undoredoAttributes.notnull", undoredoAttributes[2].notnull, true) 0050 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributes.defaultvalue"), undoredoAttributes[2].defaultvalue, QStringLiteral("'U'")) 0051 /* 0052 | cid | name | t_type | notnull | dflt_value | pk | 0053 | 0 | id | INTEGER | 99 | | 1 | 0054 | 1 | name | TEXT | 99 | | 0 | 0055 | 2 | t_mode | VARCHAR(1) | 0 | 'U' | 0 | 0056 | 3 | d_date | DATE | 99 | | 0 | 0057 | 4 | t_savestep | VARCHAR(1) | 0 | 'N' | 0 | 0058 | 5 | parent | INTEGER | 0 | | 0 | 0059 */ 0060 0061 QStringList undoredoAttributeNames; 0062 SKGTESTERROR(QStringLiteral("OBJBASE:getAttributesList)"), document1.getAttributesList(QStringLiteral("doctransaction"), undoredoAttributeNames), true) 0063 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributeNames.count"), undoredoAttributeNames.count(), 7) 0064 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributeNames"), undoredoAttributeNames[0], QStringLiteral("id")) 0065 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributeNames"), undoredoAttributeNames[1], QStringLiteral("t_name")) 0066 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributeNames"), undoredoAttributeNames[2], QStringLiteral("t_mode")) 0067 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributeNames"), undoredoAttributeNames[3], QStringLiteral("d_date")) 0068 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributeNames"), undoredoAttributeNames[4], QStringLiteral("t_savestep")) 0069 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributeNames"), undoredoAttributeNames[5], QStringLiteral("t_refreshviews")) 0070 SKGTEST(QStringLiteral("OBJBASE:undoredoAttributeNames"), undoredoAttributeNames[6], QStringLiteral("i_parent")) 0071 0072 SKGBEGINTRANSACTION(document1, QStringLiteral("OBJBASE 1"), err) 0073 SKGObjectBase obj1(&document1, QStringLiteral("bank")); 0074 SKGTESTERROR(QStringLiteral("OBJBASE:setAttribute"), obj1.setAttribute(QStringLiteral("t_name"), QStringLiteral("CL")), true) 0075 SKGTESTERROR(QStringLiteral("OBJBASE:save"), obj1.save(), true) 0076 0077 SKGObjectBase obj2(&document1, QStringLiteral("bank"), obj1.getID()); 0078 SKGTESTERROR(QStringLiteral("OBJBASE:load"), obj2.load(), true) 0079 SKGTEST(QStringLiteral("OBJBASE:getAttribute"), obj2.getAttribute(QStringLiteral("t_name")), QStringLiteral("CL")) 0080 SKGTESTERROR(QStringLiteral("OBJBASE:setAttribute"), obj2.setAttribute(QStringLiteral("t_name"), QStringLiteral("CC")), true) 0081 SKGTESTERROR(QStringLiteral("OBJBASE:save"), obj2.save(), true) 0082 0083 SKGObjectBase obj3(&document1, QStringLiteral("v_bank"), obj2.getID()); 0084 SKGTESTERROR(QStringLiteral("OBJBASE:load"), obj3.load(), true) 0085 SKGTEST(QStringLiteral("OBJBASE:getAttribute"), obj3.getAttribute(QStringLiteral("t_name")), QStringLiteral("CC")) 0086 SKGTEST(QStringLiteral("OBJBASE:getTable"), obj3.getTable(), QStringLiteral("v_bank")) 0087 SKGTESTERROR(QStringLiteral("OBJBASE:save"), obj3.save(), true) 0088 0089 SKGObjectBase obj4(&document1); 0090 SKGTESTBOOL("OBJBASE:Operator =", (obj2 == obj1), true) 0091 SKGTESTBOOL("OBJBASE:Operator =", (obj3 == obj1), true) 0092 SKGTESTBOOL("OBJBASE:Operator =", (obj4 == obj1), false) 0093 0094 SKGTESTBOOL("OBJBASE:Operator !=", (obj2 != obj1), false) 0095 SKGTESTBOOL("OBJBASE:Operator !=", (obj3 != obj1), false) 0096 SKGTESTBOOL("OBJBASE:Operator !=", (obj4 != obj1), true) 0097 0098 SKGQStringQStringMap att = obj3.getAttributes(); 0099 int nb = obj3.getNbAttributes(); 0100 SKGTEST(QStringLiteral("OBJBASE:getNbAttributes"), obj3.getNbAttributes(), att.count()) 0101 for (int i = 0; i < nb; ++i) { 0102 SKGTRACE << i << ":" << obj3.getAttribute(SKGServices::intToString(i)) << SKGENDL; 0103 } 0104 SKGTEST(QStringLiteral("OBJBASE:getAttribute"), obj3.getAttribute(QStringLiteral("2")), QStringLiteral("CC")) 0105 SKGTESTBOOL("OBJBASE:exist", obj3.exist(), true) 0106 SKGTESTERROR(QStringLiteral("OBJBASE:dump"), obj3.dump(), true) 0107 0108 SKGTEST(QStringLiteral("OBJBASE:getID"), obj3.getID(), 1) 0109 SKGTESTERROR(QStringLiteral("OBJBASE:resetID"), obj3.resetID(), true) 0110 SKGTEST(QStringLiteral("OBJBASE:getID"), obj3.getID(), 0) 0111 0112 SKGNamedObject tmp1(obj3); 0113 const SKGNamedObject& tmp2 = tmp1; 0114 SKGTEST(QStringLiteral("OBJBASE:getAttribute"), tmp2.getAttribute(QStringLiteral("t_name")), QStringLiteral("CC")) 0115 0116 // Test error 0117 SKGObjectBase notFound; 0118 SKGTESTERROR(QStringLiteral("OBJBASE:getObject"), document1.getObject(QStringLiteral("v_bank"), QStringLiteral("t_name='NOTFOUND'"), notFound), false) 0119 SKGTESTERROR(QStringLiteral("OBJBASE:getObject"), document1.getObject(QStringLiteral("parameters"), QStringLiteral("'"), notFound), false) 0120 SKGTESTERROR(QStringLiteral("OBJBASE:getObject"), document1.getObject(QStringLiteral("v_bank"), 9999, notFound), false) 0121 } 0122 } 0123 // ============================================================================ 0124 // ============================================================================ 0125 { 0126 // Test bank document 0127 SKGDocumentBank document1; 0128 SKGTESTERROR(QStringLiteral("document1.initialize()"), document1.initialize(), true) 0129 SKGError err; 0130 SKGTEST(QStringLiteral("BANK:getNbTransaction"), document1.getNbTransaction(), 0) { 0131 // Scope of the transaction 0132 SKGBEGINTRANSACTION(document1, QStringLiteral("BANK_T1"), err) 0133 0134 // The code here 0135 IFOK(err) { 0136 SKGTEST(QStringLiteral("BANK:getDepthTransaction"), document1.getDepthTransaction(), 1) 0137 0138 // Example; transaction succeeded 0139 SKGTESTERROR(QStringLiteral("BANK:setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL1")), true) 0140 SKGTESTERROR(QStringLiteral("BANK:setParameter"), document1.setParameter(QStringLiteral("ATT2"), QStringLiteral("VAL2")), true) 0141 SKGTESTERROR(QStringLiteral("BANK:setParameter"), document1.setParameter(QStringLiteral("ATT3"), QStringLiteral("VAL2")), true) 0142 0143 QStringList oResult; 0144 SKGTESTERROR(QStringLiteral("BANK:getDistinctValues"), document1.getDistinctValues(QStringLiteral("parameters"), QStringLiteral("t_value"), QStringLiteral("t_value like 'VAL%'"), oResult), true) 0145 SKGTEST(QStringLiteral("BANK:oResult.size"), oResult.size(), 2) 0146 0147 // Test account 0148 SKGTESTERROR(QStringLiteral("BANK:addOrModifyAccount"), document1.addOrModifyAccount(QStringLiteral("Courant"), QStringLiteral("123"), QStringLiteral("LCL")), true) 0149 SKGTESTERROR(QStringLiteral("BANK:addOrModifyAccount"), document1.addOrModifyAccount(QStringLiteral("Livret A"), QStringLiteral("456"), QStringLiteral("CREDIT COOP")), true) 0150 SKGTESTERROR(QStringLiteral("BANK:addOrModifyAccount"), document1.addOrModifyAccount(QStringLiteral("Codevi"), QStringLiteral("789"), QStringLiteral("NEF")), true) 0151 SKGTESTERROR(QStringLiteral("BANK:addOrModifyAccount"), document1.addOrModifyAccount(QStringLiteral("PEA"), QStringLiteral("ABC"), QStringLiteral("CA")), true) 0152 SKGTESTERROR(QStringLiteral("BANK:getDistinctValues"), document1.getDistinctValues(QStringLiteral("account"), QStringLiteral("t_name"), oResult), true) 0153 SKGTEST(QStringLiteral("BANK:oResult.size"), oResult.size(), 4) 0154 0155 // Test units 0156 SKGTESTERROR(QStringLiteral("BANK:addOrModifyUnitValue"), document1.addOrModifyUnitValue(QStringLiteral("E"), now, 1), true) 0157 SKGTESTERROR(QStringLiteral("BANK:addOrModifyUnitValue"), document1.addOrModifyUnitValue(QStringLiteral("$"), now, 1.6), true) // Oups, it is an error 0158 SKGTESTERROR(QStringLiteral("BANK:addOrModifyUnitValue"), document1.addOrModifyUnitValue(QStringLiteral("$"), now, 0.625), true) // it is better now 0159 SKGTESTERROR(QStringLiteral("BANK:getDistinctValues"), document1.getDistinctValues(QStringLiteral("unitvalue"), QStringLiteral("rd_unit_id"), oResult), true) 0160 SKGTEST(QStringLiteral("BANK:oResult.size"), oResult.size(), 2) 0161 } 0162 } // A commit is done here because the scope is close 0163 0164 QStringList oResult; 0165 SKGTESTERROR(QStringLiteral("BANK:getDistinctValues"), document1.getDistinctValues(QStringLiteral("unit"), QStringLiteral("t_name"), oResult), true) 0166 SKGTEST(QStringLiteral("BANK:oResult.size"), oResult.size(), 2) 0167 SKGTESTERROR(QStringLiteral("BANK:undoRedoTransaction(BANK_T1, SKGDocument::UNDO)"), document1.undoRedoTransaction(), true) 0168 SKGTESTERROR(QStringLiteral("BANK:getDistinctValues"), document1.getDistinctValues(QStringLiteral("unit"), QStringLiteral("t_name"), oResult), true) 0169 SKGTEST(QStringLiteral("BANK:oResult.size"), oResult.size(), 0) 0170 SKGTESTERROR(QStringLiteral("BANK:undoRedoTransaction(BANK_T1, SKGDocument::REDO)"), document1.undoRedoTransaction(SKGDocument::REDO), true) 0171 SKGTESTERROR(QStringLiteral("BANK:getDistinctValues"), document1.getDistinctValues(QStringLiteral("unit"), QStringLiteral("t_name"), oResult), true) 0172 SKGTEST(QStringLiteral("BANK:oResult.size"), oResult.size(), 2) 0173 0174 SKGTESTERROR(QStringLiteral("BANK:err"), err, true) 0175 } 0176 0177 // End test 0178 SKGENDTEST() 0179 }