Go to the documentation of this file. 1 #ifndef UNIT_TEST_UTILS
2 #define UNIT_TEST_UTILS
4 #ifndef TEST_RESOURCES_DIR
5 #define TEST_RESOURCES_DIR "../TestResources"
10 #include <boost/test/execution_monitor.hpp>
11 #include <boost/test/framework.hpp>
12 #include <boost/test/results_collector.hpp>
13 #include <boost/test/tree/observer.hpp>
14 #include <boost/test/unit_test.hpp>
15 #include "./fakeit.hpp"
17 #define CSCTEST_HAS_ARGS(...) CSCTEST_HAS_ARGS_IMPL(__VA_ARGS__, 1, 0)
18 #define CSCTEST_HAS_ARGS_IMPL(_1, _2, N, ...) N
19 #define CSCTEST_ASSERT(expr, ...) \
20 if (CSCTEST_HAS_ARGS(__VA_ARGS__)) { \
22 LOG_ERROR("assert failed - 🧾 stacktrace = " + getStackTrace()); \
25 BOOST_TEST(expr __VA_OPT__(, ) __VA_ARGS__);
27 using std::string, std::function, std::vector,
std::to_string, boost::unit_test::assertion_result, boost::test_tools::tt_detail::tolerance_manip_delay, boost::test_tools::tolerance;
29 using namespace fakeit;
30 using namespace boost::unit_test::framework;
32 namespace fs = std::filesystem;
37 void exception_caught(boost::execution_exception
const &error)
override;
38 void assertion_result(
enum assertion_result result)
override;
39 bool wasAnExceptionCaught();
40 void resetExceptionTracking();
41 void test_finish()
override;
46 std::unique_ptr<CscLogger>
logger;
69 vector<CscEnvironmentSimulator *> createdEnvironmentSimulators;
72 template <
class MockedType>
76 MockedType &instanceReference = mock.get();
77 std::shared_ptr<MockedType> sharedPtr(&instanceReference);
78 MockedType *pointer = sharedPtr.get();
82 template <
class MockedType>
86 MockedType &instanceReference = mock.get();
95 for (
int i = 0;
i < left.size();
i++) {
96 if constexpr (std::is_same<T, double>::value) {
112 template <
typename T>
113 concept
IsStringLike = std::is_same_v<T, const string> || std::is_same_v<T, string> || std::is_same_v<T, char *> || std::is_same_v<T, const char *>;
114 template <IsStringLike T1, IsStringLike T2>
119 template <
class T1,
class T2>
128 template <
class T1,
class T2>
145 template <
class TException>
150 }
catch (
const TException &e) {
NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string(const NLOHMANN_BASIC_JSON_TPL &j)
user-defined to_string function for JSON values
Definition: json.hpp:26470
unique_ptr< CscLogger > logger
Definition: unit-test.h:52
T2 optional< double > decimalTolerance
Definition: unit-test.h:121
#define CSCTEST_ASSERT(expr,...)
Definition: unit-test.h:19
MockedType * mockToPointer(Mock< MockedType > &mock)
Definition: unit-test.h:73
void assertFileContent(const fs::path &path, const string &expectedContent)
Definition: unit-test.cpp:88
concept IsStringLike
Definition: unit-test.h:113
Definition: unit-test.h:58
static ConscienceTestObserver * observer
Definition: unit-test.h:51
Definition: unit-test.h:34
T2 right
Definition: unit-test.h:121
void assertTrue(const T &boolValue)
Definition: unit-test.h:104
void assertThrows(function< void()> action)
Definition: unit-test.h:146
void assertNotNull(T *object)
Definition: unit-test.h:133
static std::unique_ptr< CscLogger > logger
Definition: gltfHelpers.cpp:6
j template void())
Definition: json.hpp:4189
Definition: unit-test.h:49
requires(!IsStringLike< T1 >) void assertEquals(T1 left
T2 optional< double > class T2 void assertNotEquals(T1 left, T2 right)
Definition: unit-test.h:129
void assertVectorsEqual(const vector< T > &left, const vector< T > &right)
Definition: unit-test.h:93
Definition: CscEntityReflexion.h:50
Definition: CscEnvironmentSimulator.h:35
ptr< MockedType > mockToSharedPointer(Mock< MockedType > &mock)
Definition: unit-test.h:83
void assertEquals(T1 left, T2 right)
Definition: unit-test.h:115
void assertFalse(const T &boolValue)
Definition: unit-test.h:108
std::shared_ptr< T > ptr
Definition: CscCommon.h:29
int i
Definition: HybridAStar.cpp:191