#include #include using namespace drogon; class TestA : public DrObject { }; namespace test { class TestB : public DrObject { }; } // namespace test DROGON_TEST(DrObjectCreationTest) { using PtrType = std::shared_ptr; auto obj = PtrType(DrClassMap::newObject("TestA")); CHECK(obj != nullptr); auto objPtr = DrClassMap::getSingleInstance("TestA"); CHECK(objPtr.get() != nullptr); auto objPtr2 = DrClassMap::getSingleInstance(); CHECK(objPtr2.get() != nullptr); CHECK(objPtr == objPtr2); } DROGON_TEST(DrObjectNamespaceTest) { using PtrType = std::shared_ptr; auto obj = PtrType(DrClassMap::newObject("test::TestB")); CHECK(obj != nullptr); auto objPtr = DrClassMap::getSingleInstance("test::TestB"); CHECK(objPtr.get() != nullptr); auto objPtr2 = DrClassMap::getSingleInstance<::test::TestB>(); CHECK(objPtr2.get() != nullptr); CHECK(objPtr == objPtr2); }