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 }