#include "SingletonHolder.h" #include #include #include "a2functional.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() { SingletonHolder::instance(make_unique("Hello world.")); 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