/*************************************************************************** mymoneykeyvaluecontainertest.cpp ------------------- copyright : (C) 2002 by Thomas Baumgart email : ipwizard@users.sourceforge.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "mymoneykeyvaluecontainertest.h" #include MyMoneyKeyValueContainerTest::MyMoneyKeyValueContainerTest() { } void MyMoneyKeyValueContainerTest::setUp () { m = new MyMoneyKeyValueContainer; } void MyMoneyKeyValueContainerTest::tearDown () { delete m; } void MyMoneyKeyValueContainerTest::testEmptyConstructor() { CPPUNIT_ASSERT(m->m_kvp.count() == 0); } void MyMoneyKeyValueContainerTest::testRetrieveValue() { // load a value into the container m->m_kvp["Key"] = "Value"; // make sure it's there CPPUNIT_ASSERT(m->m_kvp.count() == 1); CPPUNIT_ASSERT(m->m_kvp["Key"] == "Value"); // now check that the access function works CPPUNIT_ASSERT(m->value("Key") == "Value"); CPPUNIT_ASSERT(m->value("key").isEmpty()); } void MyMoneyKeyValueContainerTest::testSetValue() { m->setValue("Key", "Value"); CPPUNIT_ASSERT(m->m_kvp.count() == 1); CPPUNIT_ASSERT(m->m_kvp["Key"] == "Value"); } void MyMoneyKeyValueContainerTest::testDeletePair() { m->setValue("Key", "Value"); m->setValue("key", "value"); CPPUNIT_ASSERT(m->m_kvp.count() == 2); m->deletePair("Key"); CPPUNIT_ASSERT(m->m_kvp.count() == 1); CPPUNIT_ASSERT(m->value("Key").isEmpty()); CPPUNIT_ASSERT(m->value("key") == "value"); } void MyMoneyKeyValueContainerTest::testClear() { m->setValue("Key", "Value"); m->setValue("key", "value"); CPPUNIT_ASSERT(m->m_kvp.count() == 2); m->clear(); CPPUNIT_ASSERT(m->m_kvp.count() == 0); } void MyMoneyKeyValueContainerTest::testRetrieveList() { TQMap copy; copy = m->pairs(); CPPUNIT_ASSERT(copy.count() == 0); m->setValue("Key", "Value"); m->setValue("key", "value"); copy = m->pairs(); CPPUNIT_ASSERT(copy.count() == 2); CPPUNIT_ASSERT(copy["Key"] == "Value"); CPPUNIT_ASSERT(copy["key"] == "value"); } void MyMoneyKeyValueContainerTest::testLoadList() { m->setValue("Key", "Value"); m->setValue("key", "value"); CPPUNIT_ASSERT(m->m_kvp.count() == 2); CPPUNIT_ASSERT(m->m_kvp["Key"] == "Value"); CPPUNIT_ASSERT(m->m_kvp["key"] == "value"); } void MyMoneyKeyValueContainerTest::testWriteXML() { m->setValue("Key", "Value"); m->setValue("key", "value"); TQDomDocument doc("TEST"); TQDomElement el = doc.createElement("KVP-CONTAINER"); doc.appendChild(el); m->writeXML(doc, el); TQString ref( "\n" "\n" " \n" " \n" " \n" " \n" "\n"); CPPUNIT_ASSERT(doc.toString() == ref); } void MyMoneyKeyValueContainerTest::testReadXML() { m->setValue("Key", "Value"); m->setValue("key", "value"); TQString ref_ok( "\n" "\n" " \n" " \n" " \n" " \n" "\n"); TQString ref_false( "\n" "\n" " \n" " \n" " \n" " \n" "\n"); TQDomDocument doc; TQDomElement node; doc.setContent(ref_false); node = doc.documentElement().firstChild().toElement(); // make sure, an empty node does not trigger an exception try { MyMoneyKeyValueContainer k(TQDomNode()); } catch(MyMoneyException *e) { CPPUNIT_FAIL("Unexpected exception"); delete e; } try { MyMoneyKeyValueContainer k(node); CPPUNIT_FAIL("Missing expected exception"); } catch(MyMoneyException *e) { delete e; } doc.setContent(ref_ok); node = doc.documentElement().firstChild().toElement(); try { MyMoneyKeyValueContainer k(node); CPPUNIT_ASSERT(k.m_kvp.count() == 2); CPPUNIT_ASSERT(k.value("key") == "Value"); CPPUNIT_ASSERT(k.value("Key") == "value"); } catch(MyMoneyException *e) { delete e; CPPUNIT_FAIL("Unexpected exception"); } } void MyMoneyKeyValueContainerTest::testArrayRead() { MyMoneyKeyValueContainer kvp; const MyMoneyKeyValueContainer& ckvp = kvp; CPPUNIT_ASSERT(kvp.pairs().count() == 0); CPPUNIT_ASSERT(ckvp["Key"].isEmpty()); CPPUNIT_ASSERT(kvp.pairs().count() == 0); kvp.setValue("Key", "Value"); CPPUNIT_ASSERT(kvp["Key"] == "Value"); } void MyMoneyKeyValueContainerTest::testArrayWrite() { MyMoneyKeyValueContainer kvp; kvp["Key"] = "Value"; CPPUNIT_ASSERT(kvp.pairs().count() == 1); CPPUNIT_ASSERT(kvp.value("Key") == "Value"); }