Add unit and integration tests for DAOs, Translator, EventBus, and SyncScheduler (Phase 9 - Testing & QA)

This commit is contained in:
Padrino
2026-06-04 19:00:31 +02:00
parent c5704b78a4
commit dcb7c52269
8 changed files with 512 additions and 0 deletions
+85
View File
@@ -90,3 +90,88 @@ target_include_directories(wino-mail-qt PRIVATE ${GMIME_INCLUDE_DIRS})
# Install (optional)
install(TARGETS wino-mail-qt DESTINATION bin)
# Enable testing
enable_testing()
# Find Qt Test
find_package(Qt6 COMPONENTS Test REQUIRED)
# Unit tests for DAOs
add_executable(tests_dao_unit
tests/unit/test_accountdao.cpp
tests/unit/test_folderdao.cpp
tests/unit/test_mailitemdao.cpp
)
target_link_libraries(tests_dao_unit
PRIVATE Qt6::Core Qt6::Test
)
if(USE_DTKWIDGET AND DTKWIDGET_FOUND)
target_link_libraries(tests_dao_unit PRIVATE ${DTKWIDGET_LIBS})
endif()
if(GMIME_FOUND)
target_link_libraries(tests_dao_unit PRIVATE ${GMIME_LIBRARIES})
target_include_directories(tests_dao_unit PRIVATE ${GMIME_INCLUDE_DIRS})
endif()
add_test(NAME dao_unit COMMAND tests_dao_unit)
# Unit tests for Translator
add_executable(tests_translator_unit
tests/unit/test_translator.cpp
)
target_link_libraries(tests_translator_unit
PRIVATE Qt6::Core Qt6::Test
)
if(USE_DTKWIDGET AND DTKWIDGET_FOUND)
target_link_libraries(tests_translator_unit PRIVATE ${DTKWIDGET_LIBS})
endif()
if(GMIME_FOUND)
target_link_libraries(tests_translator_unit PRIVATE ${GMIME_LIBRARIES})
target_include_directories(tests_translator_unit PRIVATE ${GMIME_INCLUDE_DIRS})
endif()
add_test(NAME translator_unit COMMAND tests_translator_unit)
# Unit tests for EventBus
add_executable(tests_eventbus_unit
tests/unit/test_eventbus.cpp
)
target_link_libraries(tests_eventbus_unit
PRIVATE Qt6::Core Qt6::Test
)
if(USE_DTKWIDGET AND DTKWIDGET_FOUND)
target_link_libraries(tests_eventbus_unit PRIVATE ${DTKWIDGET_LIBS})
endif()
if(GMIME_FOUND)
target_link_libraries(tests_eventbus_unit PRIVATE ${GMIME_LIBRARIES})
target_include_directories(tests_eventbus_unit PRIVATE ${GMIME_INCLUDE_DIRS})
endif()
add_test(NAME eventbus_unit COMMAND tests_eventbus_unit)
# Integration tests (require full application context)
add_executable(tests_sync_integration
tests/integration/test_syncscheduler.cpp
tests/integration/test_notificationmanager.cpp
)
target_link_libraries(tests_sync_integration
PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets Qt6::Network Qt6::Sql Qt6::Test
)
if(USE_DTKWIDGET AND DTKWIDGET_FOUND)
target_link_libraries(tests_sync_integration PRIVATE ${DTKWIDGET_LIBS})
endif()
if(GMIME_FOUND)
target_link_libraries(tests_sync_integration PRIVATE ${GMIME_LIBRARIES})
target_include_directories(tests_sync_integration PRIVATE ${GMIME_INCLUDE_DIRS})
endif()
add_test(NAME sync_integration COMMAND tests_sync_integration)