From 24bdf39e6c21ab846f6c86803761d78a094e05c0 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 26 May 2022 20:31:26 +0300 Subject: Added files from project 1 (mirror) --- .../Project 1/tests/Tests_Command.h | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Year 1/Object-oriented Programming/Project 1/tests/Tests_Command.h (limited to 'Year 1/Object-oriented Programming/Project 1/tests/Tests_Command.h') diff --git a/Year 1/Object-oriented Programming/Project 1/tests/Tests_Command.h b/Year 1/Object-oriented Programming/Project 1/tests/Tests_Command.h new file mode 100644 index 0000000..02325cd --- /dev/null +++ b/Year 1/Object-oriented Programming/Project 1/tests/Tests_Command.h @@ -0,0 +1,51 @@ +#include +#include "../doctest/doctest/doctest.h" +#include "../src/Generic/ConsoleInterface/Command.h" + +TEST_SUITE_BEGIN("ClassCommand"); + +unsigned value = 0; +void increment() { + value++; +} + +TEST_SUITE("Constructors") { + TEST_CASE("DefaultCtor_SavesNameInMenuAsBlankString_WhenCalled") { + Command c; + + CHECK_EQ(strcmp(c.get_nameInMenu(), ""), 0); + } + TEST_CASE("Ctor_SavesValues_WhenGivenCorrectValues") { + void (*exec)() = nullptr; + SUBCASE("ActualFunctionPointer") { exec = increment; } + SUBCASE("nullptrFunctionPointer") { exec = nullptr; } + Command c("Test", exec); + + CHECK_EQ(strcmp(c.get_nameInMenu(), "Test"), 0); + } +} + +TEST_SUITE("GettersAndSetters") { + TEST_CASE("nameInMenuGetter_ReturnsProperPointer_WhenCreatedWithProperString") { + Command c("Test", nullptr); + + CHECK_EQ(strcmp(c.get_nameInMenu(), "Test"), 0); + } + TEST_CASE("nameInMenuGetter_ReturnsBlankString_WhenCreatedWithDefaultCtor") { + Command c; + + CHECK_EQ(strcmp(c.get_nameInMenu(), ""), 0); + } +} + +TEST_SUITE("run()") { + TEST_CASE("run_ExecutesFunction_WhenCreatedWithProperFunction") { + value = 0; + Command c("Test", increment); + c.run(); + + CHECK_EQ(value, 1); + } +} + +TEST_SUITE_END(); -- cgit v1.3.1-23-gd82d