#include "SingletonHolder.h" #include #include #include "SharedHandle.h" namespace aria2 { class SingletonHolderTest : public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(SingletonHolderTest); CPPUNIT_TEST(testInstance); CPPUNIT_TEST_SUITE_END(); private: public: void setUp() { } void testInstance(); }; CPPUNIT_TEST_SUITE_REGISTRATION( SingletonHolderTest ); class M { private: std::string greeting_; public: M(const std::string& greeting):greeting_(greeting) {} const std::string& greeting() const { return greeting_; } void greeting(const std::string& greeting) { greeting_ = greeting; } }; void SingletonHolderTest::testInstance() { M m("Hello world."); SingletonHolder::instance(&m); CPPUNIT_ASSERT_EQUAL(std::string("Hello world."), SingletonHolder::instance()->greeting()); SingletonHolder::instance()->greeting("Yes, it worked!"); CPPUNIT_ASSERT_EQUAL(std::string("Yes, it worked!"), SingletonHolder::instance()->greeting()); } } // namespace aria2