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 */