File indexing completed on 2024-05-12 05:07:35
0001 /* 0002 SPDX-FileCopyrightText: 2005-2019 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-FileCopyrightText: 2005-2006 Ace Jones <acejones@users.sourceforge.net> 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef TESTUTILITIES_H 0008 #define TESTUTILITIES_H 0009 0010 #include <QList> 0011 #include <QDate> 0012 0013 class QXmlStreamWriter; 0014 class QXmlStreamReader; 0015 0016 #include "mymoneyaccount.h" 0017 #include "mymoneytransaction.h" 0018 #include "mymoneymoney.h" 0019 #include "mymoneysecurity.h" 0020 class MyMoneyReport; 0021 0022 namespace reports 0023 { 0024 class PivotTable; 0025 class QueryTable; 0026 } 0027 0028 namespace test 0029 { 0030 0031 extern const MyMoneyMoney moCheckingOpen; 0032 extern const MyMoneyMoney moCreditOpen; 0033 extern const MyMoneyMoney moConverterCheckingOpen; 0034 extern const MyMoneyMoney moConverterCreditOpen; 0035 extern const MyMoneyMoney moZero; 0036 extern const MyMoneyMoney moSolo; 0037 extern const MyMoneyMoney moParent1; 0038 extern const MyMoneyMoney moParent2; 0039 extern const MyMoneyMoney moParent; 0040 extern const MyMoneyMoney moChild; 0041 extern const MyMoneyMoney moThomas; 0042 extern const MyMoneyMoney moNoPayee; 0043 0044 extern QString acAsset; 0045 extern QString acLiability; 0046 extern QString acExpense; 0047 extern QString acIncome; 0048 extern QString acChecking; 0049 extern QString acTransfer; 0050 extern QString acCredit; 0051 extern QString acSolo; 0052 extern QString acParent; 0053 extern QString acChild; 0054 extern QString acSecondChild; 0055 extern QString acGrandChild1; 0056 extern QString acGrandChild2; 0057 extern QString acForeign; 0058 extern QString acCanChecking; 0059 extern QString acJpyChecking; 0060 extern QString acCanCash; 0061 extern QString acJpyCash; 0062 extern QString inBank; 0063 extern QString eqStock1; 0064 extern QString eqStock2; 0065 extern QString eqStock3; 0066 extern QString eqStock4; 0067 extern QString acInvestment; 0068 extern QString acStock1; 0069 extern QString acStock2; 0070 extern QString acStock3; 0071 extern QString acStock4; 0072 extern QString acDividends; 0073 extern QString acInterest; 0074 extern QString acFees; 0075 extern QString acTax; 0076 extern QString acCash; 0077 extern QString curBase; 0078 0079 class TransactionHelper: public MyMoneyTransaction 0080 { 0081 private: 0082 QString m_id; 0083 public: 0084 TransactionHelper(const QDate& _date, const QString& _action, MyMoneyMoney _value, const QString& _accountid, const QString& _categoryid, const QString& _currencyid = QString(), const QString& _payee = "Test Payee"); 0085 ~TransactionHelper(); 0086 void update(); 0087 protected: 0088 TransactionHelper() {} 0089 }; 0090 0091 class InvTransactionHelper: public TransactionHelper 0092 { 0093 public: 0094 InvTransactionHelper(const QDate& _date, const QString& _action, MyMoneyMoney _shares, MyMoneyMoney _value, const QString& _stockaccountid, const QString& _transferid, const QString& _categoryid, MyMoneyMoney _fee = MyMoneyMoney()); 0095 void init(const QDate& _date, const QString& _action, MyMoneyMoney _shares, MyMoneyMoney _price, MyMoneyMoney _fee, const QString& _stockaccountid, const QString& _transferid, const QString& _categoryid); 0096 }; 0097 0098 class BudgetEntryHelper 0099 { 0100 private: 0101 QDate m_date; 0102 QString m_categoryid; 0103 MyMoneyMoney m_amount; 0104 0105 public: 0106 BudgetEntryHelper() {} 0107 BudgetEntryHelper(const QDate& _date, const QString& _categoryid, bool /* _applytosub */, const MyMoneyMoney& _amount): m_date(_date), m_categoryid(_categoryid), m_amount(_amount) {} 0108 }; 0109 0110 class BudgetHelper: public QList<BudgetEntryHelper> 0111 { 0112 MyMoneyMoney budgetAmount(const QDate& _date, const QString& _categoryid, bool& _applytosub); 0113 }; 0114 0115 extern QString makeBaseCurrency(const MyMoneySecurity& currency = MyMoneySecurity("EUR", "Euro", QChar(0x20ac))); 0116 extern QString makeAccount(const QString& id, const QString& _name, eMyMoney::Account::Type _type, MyMoneyMoney _balance, const QDate& _open, const QString& _parent, QString _currency = "", bool _taxReport = false, bool _openingBalance = false); 0117 extern QString makeAccount(const QString& _name, eMyMoney::Account::Type _type, MyMoneyMoney _balance, const QDate& _open, const QString& _parent, QString _currency = "", bool _taxReport = false, bool _openingBalance = false); 0118 extern void makePrice(const QString& _currencyid, const QDate& _date, const MyMoneyMoney& _price); 0119 QString makeEquity(const QString& _name, const QString& _symbol); 0120 extern void makeEquityPrice(const QString& _id, const QDate& _date, const MyMoneyMoney& _price); 0121 extern void writeRCFtoXMLDoc(const MyMoneyReport& filter, QXmlStreamWriter* writer); 0122 extern void writeRCFtoXML(const MyMoneyReport& filter, const QString& _filename = QString()); 0123 extern bool readRCFfromXMLDoc(QList<MyMoneyReport>& list, QXmlStreamReader* reader); 0124 extern bool readRCFfromXML(QList<MyMoneyReport>& list, const QString& filename); 0125 extern void XMLandback(MyMoneyReport& filter); 0126 extern MyMoneyMoney searchHTML(const QString& _html, const QString& _search); 0127 0128 } // end namespace test 0129 0130 #endif // TESTUTILITIES_H