# We have to conditionally enable/disable test cases requiring network access
# during ci/package builds. We are conservative and default to OFF.
option(
  MESSAGING_FW_ENABLE_TESTS_REQUIRING_NETWORK_ACCESS
  "Enable test cases that require network access"
  OFF)

# Recursively grab all header files and make them known here
file(GLOB_RECURSE CMCC_HEADERS_IN_TESTS *.h)

# There is a known issue with initializing a pthread mutex in gtest.
# Disable the respective warning selectively for tests only.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-field-initializers")

include_directories(
  ${CMAKE_CURRENT_BINARY_DIR}
  ${CMAKE_CURRENT_SOURCE_DIR}

  # Exposing implementation-specific header files to
  # test cases.
  ${CMAKE_SOURCE_DIR}/src

  ${GMOCK_INCLUDE_DIR}
  ${GTEST_INCLUDE_DIR}

  ${PROCESS_CPP_INCLUDE_DIRS}
)

add_library(testing-mocks
    mock_presence_manager.cpp
    mock_messenger.cpp
    mock_connection.cpp
    mock_connector.cpp
)

# make the .h files visible on qtcreator
file(GLOB_RECURSE TEST_H_FILES *.h)
add_custom_target(test_dot_h_files ALL SOURCES ${TEST_H_FILES})

target_link_libraries(testing-mocks messaging-framework ${GMOCK_LIBRARY})
set_target_properties(testing-mocks PROPERTIES POSITION_INDEPENDENT_CODE ON)

add_subdirectory(unit)
