find_package(Boost 1.53.0
    COMPONENTS
    unit_test_framework
    REQUIRED)

add_library(dnshosting-services-test-setup STATIC
    setup/fixtures.cc
    setup/global_fixtures.cc 
    setup/record_types/a_record.cc
    setup/record_types/aaaa_record.cc
    setup/record_types/aname_record.cc
    setup/record_types/caa_record.cc
    setup/record_types/cname_record.cc
    setup/record_types/https_record.cc
    setup/record_types/mx_record.cc
    setup/record_types/srv_record.cc
    setup/record_types/sshfp_record.cc
    setup/record_types/svcb_record.cc
    setup/record_types/tlsa_record.cc
    setup/record_types/txt_record.cc)

add_library(BackendDnshostingTestSetup::library ALIAS dnshosting-services-test-setup)

target_include_directories(dnshosting-services-test-setup
    PUBLIC
        ${CMAKE_CURRENT_SOURCE_DIR}/..
    PRIVATE
        ${CMAKE_CURRENT_BINARY_DIR}/..)

target_link_libraries(dnshosting-services-test-setup
PUBLIC
    Boost::unit_test_framework
    Boost::program_options
    LibLog::library
    LibPg::library
    gRPC::grpc++
PRIVATE
    FredDnshostingServicesCore::library)

set_target_properties(dnshosting-services-test-setup PROPERTIES
    VERSION ${PROJECT_VERSION}
    CXX_STANDARD 17
    CXX_STANDARD_REQUIRED YES
    CXX_EXTENSIONS NO
    ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/lib"
    OUTPUT_NAME "dnshosting-services-test-setup")

set(TESTDATA_DIR "${CMAKE_CURRENT_SOURCE_DIR}/testdata" CACHE STRING "A description...")
target_compile_definitions(dnshosting-services-test-setup PRIVATE
    TESTDATA_DIR="${TESTDATA_DIR}")

add_executable(test-dnshosting-services
    src/main.cc
    src/test_checker.cc
    src/test_manage_records.cc
    src/test_procedures.cc
    src/test_util.cc
    src/test_unwrapper_a_record.cc
    src/test_unwrapper_aaaa_record.cc
    src/test_unwrapper_aname_record.cc
    src/test_unwrapper_caa_record.cc
    src/test_unwrapper_common_types.cc
    src/test_unwrapper_get_records_by_domain.cc
    #src/test_unwrapper_manage_records_request.cc
    src/test_wrapper_common_types.cc
    src/test_wrapper_error_types.cc
)

set_target_properties(test-dnshosting-services PROPERTIES
    CXX_STANDARD 17
    CXX_STANDARD_REQUIRED YES
    CXX_EXTENSIONS NO
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")

target_link_libraries(test-dnshosting-services PRIVATE
    FredDnshostingServicesCore::library
    Boost::unit_test_framework
    Boost::system
    BackendDnshostingTestSetup::library)
include(GNUInstallDirs)

install(TARGETS test-dnshosting-services DESTINATION ${CMAKE_INSTALL_BINDIR})
