File indexing completed on 2024-06-09 05:02:02

0001 /*
0002     SPDX-FileCopyrightText: 2002-2013 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #include "mymoneykeyvaluecontainer-test.h"
0007 
0008 #include <QTest>
0009 
0010 #define KMM_MYMONEY_UNIT_TESTABLE friend class MyMoneyKeyValueContainerTest;
0011 
0012 #include "mymoneyexception.h"
0013 #include "mymoneykeyvaluecontainer.h"
0014 #include "mymoneykeyvaluecontainer_p.h"
0015 
0016 QTEST_GUILESS_MAIN(MyMoneyKeyValueContainerTest)
0017 
0018 void MyMoneyKeyValueContainerTest::init()
0019 {
0020     m = new MyMoneyKeyValueContainer;
0021 }
0022 
0023 void MyMoneyKeyValueContainerTest::cleanup()
0024 {
0025     delete m;
0026 }
0027 
0028 void MyMoneyKeyValueContainerTest::testEmptyConstructor()
0029 {
0030     QVERIFY(m->d_func()->m_kvp.count() == 0);
0031 }
0032 
0033 void MyMoneyKeyValueContainerTest::testRetrieveValue()
0034 {
0035     // load a value into the container
0036     m->d_func()->m_kvp["Key"] = "Value";
0037     // make sure it's there
0038     QVERIFY(m->d_func()->m_kvp.count() == 1);
0039     QVERIFY(m->d_func()->m_kvp["Key"] == "Value");
0040     // now check that the access function works
0041     QVERIFY(m->value("Key") == "Value");
0042     QVERIFY(m->value("key").isEmpty());
0043 }
0044 
0045 void MyMoneyKeyValueContainerTest::testRetrieveDefaultValue()
0046 {
0047     // make sure container is empty
0048     QCOMPARE(m->d_func()->m_kvp.count(), 0);
0049 
0050     // check to retrieve the default value
0051     QCOMPARE(m->value(QLatin1String("Key"), QLatin1String("KMyMoney")), QLatin1String("KMyMoney"));
0052     // now add a value
0053     m->d_func()->m_kvp["Key"] = "Value";
0054     // check to retrieve the stored value
0055     QCOMPARE(m->value(QLatin1String("Key"), QLatin1String("KMyMoney")), QLatin1String("Value"));
0056     // now delete it and check to get the default value again
0057     m->deletePair("Key");
0058     QCOMPARE(m->value(QLatin1String("Key"), QLatin1String("KMyMoney")), QLatin1String("KMyMoney"));
0059 }
0060 
0061 void MyMoneyKeyValueContainerTest::testSetValue()
0062 {
0063     m->setValue("Key", "Value");
0064     QCOMPARE(m->d_func()->m_kvp.count(), 1);
0065     QCOMPARE(m->d_func()->m_kvp["Key"], QLatin1String("Value"));
0066 }
0067 
0068 void MyMoneyKeyValueContainerTest::testDeletePair()
0069 {
0070     m->setValue("Key", "Value");
0071     m->setValue("key", "value");
0072     QVERIFY(m->d_func()->m_kvp.count() == 2);
0073     m->deletePair("Key");
0074     QVERIFY(m->d_func()->m_kvp.count() == 1);
0075     QVERIFY(m->value("Key").isEmpty());
0076     QVERIFY(m->value("key") == "value");
0077 }
0078 
0079 void MyMoneyKeyValueContainerTest::testClear()
0080 {
0081     m->setValue("Key", "Value");
0082     m->setValue("key", "value");
0083     QVERIFY(m->d_func()->m_kvp.count() == 2);
0084     m->clear();
0085     QVERIFY(m->d_func()->m_kvp.count() == 0);
0086 }
0087 
0088 void MyMoneyKeyValueContainerTest::testRetrieveList()
0089 {
0090     QMap<QString, QString> copy;
0091 
0092     copy = m->d_func()->m_kvp;
0093     QVERIFY(copy.count() == 0);
0094     m->setValue("Key", "Value");
0095     m->setValue("key", "value");
0096     copy = m->d_func()->m_kvp;
0097     QVERIFY(copy.count() == 2);
0098     QVERIFY(copy["Key"] == "Value");
0099     QVERIFY(copy["key"] == "value");
0100 }
0101 
0102 void MyMoneyKeyValueContainerTest::testLoadList()
0103 {
0104     m->setValue("Key", "Value");
0105     m->setValue("key", "value");
0106 
0107     QVERIFY(m->d_func()->m_kvp.count() == 2);
0108     QVERIFY(m->d_func()->m_kvp["Key"] == "Value");
0109     QVERIFY(m->d_func()->m_kvp["key"] == "value");
0110 }
0111 
0112 void MyMoneyKeyValueContainerTest::testArrayRead()
0113 {
0114     MyMoneyKeyValueContainer kvp;
0115     const MyMoneyKeyValueContainer& ckvp = kvp;
0116     QVERIFY(kvp.pairs().count() == 0);
0117     QVERIFY(ckvp["Key"].isEmpty());
0118     QVERIFY(kvp.pairs().count() == 0);
0119     kvp.setValue("Key", "Value");
0120     QVERIFY(kvp["Key"] == "Value");
0121 }
0122 
0123 void MyMoneyKeyValueContainerTest::testArrayWrite()
0124 {
0125     MyMoneyKeyValueContainer kvp;
0126     kvp["Key"] = "Value";
0127     QVERIFY(kvp.pairs().count() == 1);
0128     QVERIFY(kvp.value("Key") == "Value");
0129 }