CPMAddPackage("gh:catchorg/Catch2@3.14.0")

list(APPEND CMAKE_MODULE_PATH ${catch2_SOURCE_DIR}/extras)

add_executable(OrmTests
  ../utils/RecordingObserver.cpp
  ../utils/RecordingObserver.hpp
  backend/test_backend_service.cpp
  backend/test_backend_service.hpp
  backend/test_connection.cpp
  backend/test_connection.hpp
  backend/test_parameter_binder.cpp
  backend/test_parameter_binder.hpp
  backend/test_result_reader.cpp
  backend/test_result_reader.hpp
  backend/test_statement.cpp
  backend/test_statement.hpp
  query/ColumnExpressionTest.cpp
  query/ColumnGeneratorTest.cpp
  query/CriteriaTests.cpp
  query/DeleteQueryBuilderTest.cpp
  query/GeneratorTests.cpp
  query/InsertQueryBuilderTest.cpp
  query/QueryBuilderTest.cpp
  query/QueryFixture.cpp
  query/QueryFixture.hpp
  query/QueryTest.cpp
  query/SchemaTest.cpp
  query/SessionQueryBuilderTest.cpp
  query/TableColumnTest.cpp
  sql/ColumnTest.cpp
  sql/ConnectionPoolFixture.hpp
  sql/ConnectionPoolTest.cpp
  sql/FieldTest.cpp
  sql/StatementCacheTest.cpp
  utils/auto_reset_event.cpp
  utils/auto_reset_event.hpp
)

target_link_libraries(OrmTests matador-orm matador-core Catch2::Catch2WithMain)

target_include_directories(OrmTests
  PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>/test
  PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
)

#target_compile_options(OrmTests PRIVATE -coverage)
#target_link_options(OrmTests PRIVATE -coverage)

add_test(NAME OrmTests COMMAND OrmTests)
