#include "helpers.hpp" #include "utils/ensure.hpp" #include using namespace testing; class TestEnsure : public Test { public: utils::Ensure> sut; size_t executed = 0u; }; TEST_F(TestEnsure, executesCallbackOnceWhenDestroyed) { sut = [this] { ++executed; }; sut = nullptr; EXPECT_THAT(executed, Eq(1u)); } TEST_F(TestEnsure, executesCallbackTwiceWhenNewCallbackAssigned) { sut = [this] { ++executed; }; sut = [this] { executed += 10; }; sut = nullptr; EXPECT_THAT(executed, Eq(11u)); }