ConditionalFunctionExecutorTest.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Author: Patrick-Christopher Mattulat
  3. * Co-Author: Claude Sonnet 4.6 (LLM)
  4. * Company: Lynar Studios
  5. * E-Mail: webmaster@lynarstudios.com
  6. * Created: 2023-02-13
  7. * Changed: 2026-06-23
  8. *
  9. * */
  10. #include <gtest/gtest.h>
  11. #include <ls-std-core-test.hpp>
  12. #include <ls-std/ls-std-core.hpp>
  13. using ls::standard::core::ConditionalFunctionExecutor;
  14. using std::make_shared;
  15. using std::shared_ptr;
  16. using test::core::MathOddValidator;
  17. using testing::Test;
  18. namespace
  19. {
  20. class ConditionalFunctionExecutorTest : public Test
  21. {
  22. public:
  23. ConditionalFunctionExecutorTest() = default;
  24. ~ConditionalFunctionExecutorTest() override = default;
  25. };
  26. TEST_F(ConditionalFunctionExecutorTest, execute)
  27. {
  28. auto validator = make_shared<MathOddValidator>();
  29. int inputNumber = 3;
  30. ConditionalFunctionExecutor{true}.execute([validator, inputNumber] { validator->validate(inputNumber); });
  31. ASSERT_TRUE(validator->isOdd());
  32. }
  33. TEST_F(ConditionalFunctionExecutorTest, execute_no_execution)
  34. {
  35. auto validator = make_shared<MathOddValidator>();
  36. int inputNumber = 3;
  37. ConditionalFunctionExecutor{false}.execute([validator, inputNumber] { validator->validate(inputNumber); });
  38. ASSERT_FALSE(validator->isOdd());
  39. }
  40. }