From cc8fb8a691399de438664c6829ea5bf6d325ac04 Mon Sep 17 00:00:00 2001 From: przemek83 <4788832+przemek83@users.noreply.github.com> Date: Wed, 2 Oct 2024 16:03:52 +0200 Subject: [PATCH] Add some tests for Menu::getUserChoice method. --- test/MenuTest.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/test/MenuTest.cpp b/test/MenuTest.cpp index 5af3e5f..0db77c8 100644 --- a/test/MenuTest.cpp +++ b/test/MenuTest.cpp @@ -4,6 +4,9 @@ #include #include "FakeDisplay.h" +#include "src/InputAction.h" +#include "src/UserChoice.h" +#include "test/FakeInput.h" TEST_CASE("Menu usage", "[Menu]") { @@ -29,4 +32,43 @@ TEST_CASE("Menu usage", "[Menu]") REQUIRE(menu.choiceToLevel(UserChoice::LEVEL_MENU) == Level::LEVEL_4); REQUIRE(menu.choiceToLevel(UserChoice::EXIT) == Level::LEVEL_4); } + + SECTION("getUserChoice EXIT") + { + FakeInput input{InputAction::QUIT, {}, {}}; + UserChoice choice{menu.getUserChoice(input)}; + REQUIRE(choice == UserChoice::EXIT); + } + + SECTION("getUserChoice accept in main menu") + { + menu.refresh(UserChoice::MAIN_MENU); + FakeInput input{InputAction::ACCEPT, {}, {}}; + UserChoice choice{menu.getUserChoice(input)}; + REQUIRE(choice == UserChoice::LEVEL_MENU); + } + + SECTION("getUserChoice back in main menu") + { + menu.refresh(UserChoice::MAIN_MENU); + FakeInput input{InputAction::BACK, {}, {}}; + UserChoice choice{menu.getUserChoice(input)}; + REQUIRE(choice == UserChoice::EXIT); + } + + SECTION("getUserChoice back in level menu") + { + menu.refresh(UserChoice::LEVEL_MENU); + FakeInput input{InputAction::BACK, {}, {}}; + UserChoice choice{menu.getUserChoice(input)}; + REQUIRE(choice == UserChoice::BACK); + } + + SECTION("getUserChoice accept in level menu") + { + menu.refresh(UserChoice::LEVEL_MENU); + FakeInput input{InputAction::ACCEPT, {}, {}}; + UserChoice choice{menu.getUserChoice(input)}; + REQUIRE(choice == UserChoice::LEVEL_1); + } }