Added the test to CMakeLists.txt, all tests OK.

This commit is contained in:
Eelke Klein 2017-08-26 15:53:15 +02:00
parent cb0ef0b130
commit 4c658d7811
12 changed files with 34 additions and 80 deletions

63
tests/tst_scopeguard.cpp Normal file
View file

@ -0,0 +1,63 @@
#include <gtest/gtest.h>
#include <gmock/gmock-matchers.h>
#include "ScopeGuard.h"
using namespace testing;
TEST(ScopeGuard, normal_run_fun_on_destruction_1)
{
bool result = false;
auto sg = scopeGuard([&result]() { result = true; });
ASSERT_THAT(result, Eq(false));
}
TEST(ScopeGuard, normal_run_fun_on_destruction_2)
{
bool result = false;
{
auto sg = scopeGuard([&result]() { result = true; });
}
ASSERT_THAT(result, Eq(true));
}
TEST(ScopeGuard, dismiss)
{
bool result = false;
{
auto sg = scopeGuard([&result]() { result = true; });
sg.dismiss();
}
ASSERT_THAT(result, Eq(false));
}
TEST(ScopeGuard, SCOPE_EXIT_macro_1)
{
bool result = false;
{
SCOPE_EXIT { result = true; };
ASSERT_THAT(result, Eq(false)); // prove previous statement hasn't run yet
}
}
TEST(ScopeGuard, SCOPE_EXIT_macro_2)
{
bool result = false;
{
SCOPE_EXIT { result = true; };
}
ASSERT_THAT(result, Eq(true));
}
//TEST(expected, get_when_valid_returns_value)
//{
// Expected<int> v = getAnswerToEverything();
// ASSERT_THAT(v.get(), Eq(42));
//}