/** * @file test_flm_tests.cpp * @brief Tests für das FLM-Modultest-Fixture (ModuleTests/flm_tests.h/.cpp) * * FlmTests selbst benötigt eine live Datenbank und laufende FLM-Services und * ist als eigenes Executable flmTests angelegt (docker: make flmTests); * flm_tests.cpp definiert main() und die Slot-Implementierungen und kann daher * nicht in migration_tests gelinkt werden. Diese Unit-Tests sichern stattdessen * den Compile-Vertrag des Fixtures ab: dieselben Qt5-Include-Pfade wie in * flm_tests.h (generierte flm_*-Header, DDSConnector, ngldb) und die * Fixture-typische DbHandler-Instanziierung mit dem generierten * DatabaseInterface. */ #include #include #include #include #include #include #include #include #include #include /** * @test flm_tests.h typedef'iert DbHandler = NGLDB::DbServiceHandler * — diese Instanziierung muss mit dem generierten DatabaseInterface * kompilieren (Template vollständig instanziierbar). */ TEST(flm_tests, DbHandlerInstantiatesWithGeneratedDatabaseInterface) { using DbHandler = NGLDB::DbServiceHandler; static_assert(std::is_class::value, "NGLDB::DbServiceHandler muss eine Klasse sein"); SUCCEED(); } /** * @test FlmTests erbt (protected) von genau diesen sechs Ftc-ReplyHandlern — * sie müssen über vollständig vorliegen. */ TEST(flm_tests, FtcReplyHandlerBasesAreComplete) { using namespace FileManagement::Interface; static_assert(std::is_class::value, "FolderModifyReplyHandler fehlt"); static_assert(std::is_class::value, "FolderRemoveReplyHandler fehlt"); static_assert(std::is_class::value, "FileContentModifyReplyHandler fehlt"); static_assert(std::is_class::value, "FileContentRemoveReplyHandler fehlt"); static_assert(std::is_class::value, "FileContentExportReplyHandler fehlt"); static_assert(std::is_class::value, "GetFileContentDataReplyHandler fehlt"); SUCCEED(); } /** * @test Der von FlmTests::init verwendete Dtc muss die Factory-Methode * create(const std::shared_ptr&) bereitstellen. */ TEST(flm_tests, DtcCreateFactorySignature) { static_assert( std::is_same (*)( const std::shared_ptr &), decltype(&FileManagement::Interface::Dtc::create)>::value, "Dtc::create muss (const std::shared_ptr&) -> shared_ptr sein"); SUCCEED(); }