From cef38fcb5cf2e1b091ebb40397f376f05d211d1e Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 19 Mar 2022 17:31:19 +0100 Subject: test: add normalize_lambda unit test --- test/function.test.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 test/function.test.cpp (limited to 'test/function.test.cpp') diff --git a/test/function.test.cpp b/test/function.test.cpp new file mode 100644 index 0000000..9aca0eb --- /dev/null +++ b/test/function.test.cpp @@ -0,0 +1,52 @@ +#include "util/function.hpp" + +#include +#include + +TEST_CASE("normalize_lamda") +{ + SUBCASE("Can return a function that returns a int") + { + const int number = 58; + + CHECK(normalize_lambda( + [number]() + { + return number; + })() == number); + } + + SUBCASE("Can preserve object state") + { + class Book + { + public: + Book() noexcept = default; + + void read_page() noexcept + { + _pages_read++; + } + + [[nodiscard]] uint32_t pages_read() const noexcept + { + return _pages_read; + } + + private: + uint32_t _pages_read{0U}; + }; + + auto book = Book(); + + book.read_page(); + book.read_page(); + book.read_page(); + + CHECK(normalize_lambda( + [book]() + { + return book.pages_read(); + })() == 3); + } +} -- cgit v1.2.3-18-g5258