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