File indexing completed on 2024-05-26 05:08:48
0001 /* 0002 SPDX-FileCopyrightText: 2004-2008 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "mymoneysecurity-test.h" 0007 0008 #include <QTest> 0009 0010 #define KMM_MYMONEY_UNIT_TESTABLE friend class MyMoneySecurityTest; 0011 0012 #include "mymoneysecurity.h" 0013 #include "mymoneysecurity_p.h" 0014 #include "mymoneymoney.h" 0015 #include "mymoneyenums.h" 0016 0017 QTEST_GUILESS_MAIN(MyMoneySecurityTest) 0018 0019 void MyMoneySecurityTest::init() 0020 { 0021 m = new MyMoneySecurity(); 0022 } 0023 0024 void MyMoneySecurityTest::cleanup() 0025 { 0026 delete m; 0027 } 0028 0029 void MyMoneySecurityTest::testEmptyConstructor() 0030 { 0031 QVERIFY(m->id().isEmpty()); 0032 QVERIFY(m->name().isEmpty()); 0033 QVERIFY(m->tradingSymbol().isEmpty()); 0034 QVERIFY(m->securityType() == eMyMoney::Security::Type::None); 0035 QVERIFY(m->tradingMarket().isEmpty()); 0036 QVERIFY(m->tradingCurrency().isEmpty()); 0037 QVERIFY(m->smallestCashFraction() == 100); 0038 QVERIFY(m->smallestAccountFraction() == 100); 0039 } 0040 0041 void MyMoneySecurityTest::testCopyConstructor() 0042 { 0043 MyMoneySecurity* n1 = new MyMoneySecurity("GUID1", *m); 0044 MyMoneySecurity n2(*n1); 0045 0046 // QVERIFY(*n1 == n2); 0047 0048 delete n1; 0049 } 0050 0051 void MyMoneySecurityTest::testNonemptyConstructor() 0052 { 0053 QDate date(2004, 4, 1); 0054 MyMoneyMoney val("1234/100"); 0055 0056 m->setName("name"); 0057 m->setTradingSymbol("symbol"); 0058 m->setSecurityType(eMyMoney::Security::Type::Currency); 0059 // m->addPriceHistory(date, val); 0060 0061 MyMoneySecurity n("id", *m); 0062 0063 QVERIFY(n.id() == QString("id")); 0064 QVERIFY(n.tradingSymbol() == QString("symbol")); 0065 QVERIFY(n.securityType() == eMyMoney::Security::Type::Currency); 0066 // QVERIFY(n.priceHistory().count() == 1); 0067 } 0068 0069 0070 void MyMoneySecurityTest::testSetFunctions() 0071 { 0072 m->setName("Name"); 0073 m->setTradingSymbol("Symbol"); 0074 m->setTradingMarket("Market"); 0075 m->setTradingCurrency("Currency"); 0076 m->setSecurityType(eMyMoney::Security::Type::Stock); 0077 m->setSmallestAccountFraction(50); 0078 m->setSmallestCashFraction(2); 0079 0080 QVERIFY(m->name() == "Name"); 0081 QVERIFY(m->tradingSymbol() == "Symbol"); 0082 QVERIFY(m->tradingMarket() == "Market"); 0083 QVERIFY(m->tradingCurrency() == "Currency"); 0084 QVERIFY(m->securityType() == eMyMoney::Security::Type::Stock); 0085 QVERIFY(m->smallestAccountFraction() == 50); 0086 QVERIFY(m->smallestCashFraction() == 2); 0087 } 0088 0089 /* 0090 void MyMoneySecurityTest::testMyMoneyFileConstructor() { 0091 MyMoneySecurity *t = new MyMoneySecurity("GUID", *n); 0092 0093 QVERIFY(t->id() == "GUID"); 0094 0095 delete t; 0096 } 0097 */ 0098 0099 void MyMoneySecurityTest::testEquality() 0100 { 0101 testSetFunctions(); 0102 m->setValue("Key", "Value"); 0103 0104 MyMoneySecurity n; 0105 n = *m; 0106 0107 QVERIFY(n == *m); 0108 n.setName("NewName"); 0109 QVERIFY(!(n == *m)); 0110 n = *m; 0111 n.setTradingSymbol("NewSymbol"); 0112 QVERIFY(!(n == *m)); 0113 n = *m; 0114 n.setTradingMarket("NewMarket"); 0115 QVERIFY(!(n == *m)); 0116 n = *m; 0117 n.setTradingCurrency("NewCurrency"); 0118 QVERIFY(!(n == *m)); 0119 n = *m; 0120 n.setSecurityType(eMyMoney::Security::Type::Currency); 0121 QVERIFY(!(n == *m)); 0122 n = *m; 0123 n.setPricePrecision(8); 0124 QVERIFY(!(n == *m)); 0125 n = *m; 0126 n.setSmallestCashFraction(20); 0127 QVERIFY(!(n == *m)); 0128 n = *m; 0129 n.setValue("Key", "NewValue"); 0130 QVERIFY(!(n == *m)); 0131 } 0132 0133 void MyMoneySecurityTest::testInequality() 0134 { 0135 testSetFunctions(); 0136 m->setValue("Key", "Value"); 0137 0138 MyMoneySecurity n; 0139 n = *m; 0140 0141 QVERIFY(!(n != *m)); 0142 n.setName("NewName"); 0143 QVERIFY(n != *m); 0144 n = *m; 0145 n.setTradingSymbol("NewSymbol"); 0146 QVERIFY(n != *m); 0147 n = *m; 0148 n.setTradingMarket("NewMarket"); 0149 QVERIFY(n != *m); 0150 n = *m; 0151 n.setTradingCurrency("NewCurrency"); 0152 QVERIFY(n != *m); 0153 n = *m; 0154 n.setSecurityType(eMyMoney::Security::Type::Currency); 0155 QVERIFY(n != *m); 0156 n = *m; 0157 n.setSmallestAccountFraction(40); 0158 QVERIFY(n != *m); 0159 n = *m; 0160 n.setSmallestCashFraction(20); 0161 QVERIFY(n != *m); 0162 n = *m; 0163 n.setValue("Key", "NewValue"); 0164 QVERIFY(n != *m); 0165 } 0166 0167 /* 0168 void MyMoneySecurityTest::testAccountIDList () { 0169 MyMoneySecurity equity; 0170 QStringList list; 0171 QString id; 0172 0173 // list must be empty 0174 list = institution.accountList(); 0175 QVERIFY(list.count() == 0); 0176 0177 // add one account 0178 institution.addAccountId("A000002"); 0179 list = institution.accountList(); 0180 QVERIFY(list.count() == 1); 0181 QVERIFY(list.contains("A000002") == 1); 0182 0183 // adding same account shouldn't make a difference 0184 institution.addAccountId("A000002"); 0185 list = institution.accountList(); 0186 QVERIFY(list.count() == 1); 0187 QVERIFY(list.contains("A000002") == 1); 0188 0189 // now add another account 0190 institution.addAccountId("A000001"); 0191 list = institution.accountList(); 0192 QVERIFY(list.count() == 2); 0193 QVERIFY(list.contains("A000002") == 1); 0194 QVERIFY(list.contains("A000001") == 1); 0195 0196 id = institution.removeAccountId("A000001"); 0197 QVERIFY(id == "A000001"); 0198 list = institution.accountList(); 0199 QVERIFY(list.count() == 1); 0200 QVERIFY(list.contains("A000002") == 1); 0201 0202 } 0203 */