/** @file $Id$ $Date$ $Author$ @copy © Marc Wäckerlin @license LGPL, see file COPYING $Log$ Revision 1.2 2005/04/07 20:55:21 marc Oops, there's a make distcheck...? Now it works. Revision 1.1 2005/01/07 00:31:38 marc initial version */ #include #include #include // ifelse #include #include #include #include #include #include #include // getenv class ConfigFileTest: public CppUnit::TestFixture { public: void CheckFile() { std::string srcdir(mrw::ifelse(getenv("srcdir"), ".")); mrw::File::copy(srcdir+"/configfile.ini", "configfile2.ini"); mrw::ConfigFileWriter config("configfile2.ini"); CPPUNIT_ASSERT_EQUAL(std::string("yyy"), config("", "xxx", ".")()); CPPUNIT_ASSERT_EQUAL(std::string(), config("Section", "abc", ".")()); CPPUNIT_ASSERT_EQUAL(std::string("hallo welt"), config("Section", "def", ".")()); CPPUNIT_ASSERT_EQUAL(std::string(), config("Section", "ghi", ".")()); CPPUNIT_ASSERT_EQUAL(std::string("mn\n op qr\n st"), config("Section", "jkl", ".")()); CPPUNIT_ASSERT_EQUAL(std::string("5678=90"), config("Other Section", "1234", ".")()); CPPUNIT_ASSERT_EQUAL(std::string("some contents"), config("Other Section", "here we are", ".")()); CPPUNIT_ASSERT_EQUAL(std::string(), config("Other Section", "here", ".")()); config("", "xxx", ".")="0"; config("Section", "abc", ".")="1"; CPPUNIT_ASSERT_EQUAL(std::string("sgadd"), config("New Section", "a first one", "sgadd")()); config("Section", "def", ".")="Und=Tschuess"; config("Section", "ghi", ".")="3"; config("Section", "jkl", ".")="4"; config("Other Section", "1234", ".")="5"; config("Other Section", "here we are", ".")="6"; config("Other Section", "here", ".")="7"; CPPUNIT_ASSERT_EQUAL(std::string("."), config("Other Section", "no no", ".")()); CPPUNIT_ASSERT_EQUAL(std::string("."), config("Other Section", "no no no", ".")()); CPPUNIT_ASSERT_EQUAL(std::string("."), config("Other Section", "yes", ".")()); CPPUNIT_ASSERT_EQUAL(std::string("dadaa"), config("Section", "guguseli", "dadaa")()); CPPUNIT_ASSERT_EQUAL(std::string("dadaa"), config("Section", "guguseli zwei", "dadaa")()); CPPUNIT_ASSERT_EQUAL(std::string("dadaa"), config("Section", "guguseli drei", "dadaa")()); CPPUNIT_ASSERT_EQUAL(std::string("."), config("New Section", "one more", ".")()); } CPPUNIT_TEST_SUITE(ConfigFileTest); CPPUNIT_TEST(CheckFile); CPPUNIT_TEST_SUITE_END(); }; CPPUNIT_TEST_SUITE_REGISTRATION(ConfigFileTest); int main(int argc, char** argv) try { std::ofstream ofs((*argv+std::string(".xml")).c_str()); CppUnit::TextUi::TestRunner runner; runner.setOutputter(new CppUnit::XmlOutputter(&runner.result(), ofs)); runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest()); return runner.run() ? 0 : 1; } catch (std::exception& e) { std::cerr<<"***Exception: "<