Adds new flm and flt migration test suites
This commit is contained in:
1 parent
501bd2b4b8
commit
4e29022c06
5 files changed
+300
No files matched your search
@@ -0,0 +1,70 @@
|
||||
/**
|
||||
* @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 <FileManagement/flm_ftc.h>
|
||||
#include <FileManagement/flm_dtc.h>
|
||||
#include <FileManagement/flm_db.h>
|
||||
#include <FileManagement/flm_db_impl_custom.h>
|
||||
#include <FileManagement/flm_ftc_types.h>
|
||||
|
||||
#include <DDS/DDSConnector/dds_connector.h>
|
||||
|
||||
#include <FileManagement/logger.h>
|
||||
#include <ngldb/db_service_handler.h>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
#include <type_traits>
|
||||
|
||||
/**
|
||||
* @test flm_tests.h typedef'iert DbHandler = NGLDB::DbServiceHandler<DatabaseInterface>
|
||||
* — diese Instanziierung muss mit dem generierten DatabaseInterface
|
||||
* kompilieren (Template vollständig instanziierbar).
|
||||
*/
|
||||
TEST(flm_tests, DbHandlerInstantiatesWithGeneratedDatabaseInterface)
|
||||
{
|
||||
using DbHandler = NGLDB::DbServiceHandler<FileManagement::DatabaseInterface>;
|
||||
static_assert(std::is_class<DbHandler>::value,
|
||||
"NGLDB::DbServiceHandler<FileManagement::DatabaseInterface> muss eine Klasse sein");
|
||||
SUCCEED();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test FlmTests erbt (protected) von genau diesen sechs Ftc-ReplyHandlern —
|
||||
* sie müssen über <FileManagement/flm_ftc.h> vollständig vorliegen.
|
||||
*/
|
||||
TEST(flm_tests, FtcReplyHandlerBasesAreComplete)
|
||||
{
|
||||
using namespace FileManagement::Interface;
|
||||
static_assert(std::is_class<Ftc::FolderModifyReplyHandler>::value, "FolderModifyReplyHandler fehlt");
|
||||
static_assert(std::is_class<Ftc::FolderRemoveReplyHandler>::value, "FolderRemoveReplyHandler fehlt");
|
||||
static_assert(std::is_class<Ftc::FileContentModifyReplyHandler>::value, "FileContentModifyReplyHandler fehlt");
|
||||
static_assert(std::is_class<Ftc::FileContentRemoveReplyHandler>::value, "FileContentRemoveReplyHandler fehlt");
|
||||
static_assert(std::is_class<Ftc::FileContentExportReplyHandler>::value, "FileContentExportReplyHandler fehlt");
|
||||
static_assert(std::is_class<Ftc::GetFileContentDataReplyHandler>::value, "GetFileContentDataReplyHandler fehlt");
|
||||
SUCCEED();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test Der von FlmTests::init verwendete Dtc muss die Factory-Methode
|
||||
* create(const std::shared_ptr<DdsConnector>&) bereitstellen.
|
||||
*/
|
||||
TEST(flm_tests, DtcCreateFactorySignature)
|
||||
{
|
||||
static_assert(
|
||||
std::is_same<std::shared_ptr<FileManagement::Interface::Dtc> (*)(
|
||||
const std::shared_ptr<DDSConnector::DdsConnector> &),
|
||||
decltype(&FileManagement::Interface::Dtc::create)>::value,
|
||||
"Dtc::create muss (const std::shared_ptr<DdsConnector>&) -> shared_ptr<Dtc> sein");
|
||||
SUCCEED();
|
||||
}
|
||||
Reference in new issue
Block a user