From e9b88d07404de7419df437dc6f034e09446e1024 Mon Sep 17 00:00:00 2001 From: adazem009 <68537469+adazem009@users.noreply.github.com> Date: Wed, 16 Aug 2023 22:13:06 +0200 Subject: [PATCH] Add Input test --- test/scratch_classes/CMakeLists.txt | 14 +++++++ test/scratch_classes/input_test.cpp | 61 +++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 test/scratch_classes/input_test.cpp diff --git a/test/scratch_classes/CMakeLists.txt b/test/scratch_classes/CMakeLists.txt index 7bba6e04..ccc5b8b7 100644 --- a/test/scratch_classes/CMakeLists.txt +++ b/test/scratch_classes/CMakeLists.txt @@ -109,3 +109,17 @@ target_link_libraries( ) gtest_discover_tests(broadcast_test) + +# input_test +add_executable( + input_test + input_test.cpp +) + +target_link_libraries( + input_test + GTest::gtest_main + scratchcpp +) + +gtest_discover_tests(input_test) diff --git a/test/scratch_classes/input_test.cpp b/test/scratch_classes/input_test.cpp new file mode 100644 index 00000000..a52f2d0c --- /dev/null +++ b/test/scratch_classes/input_test.cpp @@ -0,0 +1,61 @@ +#include +#include +#include + +#include "../common.h" + +using namespace libscratchcpp; + +TEST(InputTest, Constructors) +{ + Input input1("VALUE", Input::Type::Shadow); + ASSERT_EQ(input1.name(), "VALUE"); + ASSERT_EQ(input1.type(), Input::Type::Shadow); + + Input input2("custom_block", Input::Type::NoShadow); + ASSERT_EQ(input2.name(), "custom_block"); + ASSERT_EQ(input2.type(), Input::Type::NoShadow); +} + +TEST(InputTest, InputId) +{ + Input input("", Input::Type::Shadow); + ASSERT_EQ(input.inputId(), -1); + + input.setInputId(3); + ASSERT_EQ(input.inputId(), 3); +} + +TEST(InputTest, PrimaryValue) +{ + Input input("", Input::Type::Shadow); + ASSERT_TRUE(input.primaryValue()); + + input.setPrimaryValue("test"); + ASSERT_EQ(input.primaryValue()->value().toString(), "test"); +} + +TEST(InputTest, SecondaryValue) +{ + Input input("", Input::Type::Shadow); + ASSERT_TRUE(input.secondaryValue()); + + input.setSecondaryValue("test"); + ASSERT_EQ(input.secondaryValue()->value().toString(), "test"); +} + +TEST(InputTest, ValueBlock) +{ + Input input("", Input::Type::Shadow); + ASSERT_EQ(input.valueBlock(), nullptr); + ASSERT_EQ(input.valueBlockId(), ""); + + auto block = std::make_shared("abc", ""); + input.setValueBlock(block); + ASSERT_EQ(input.valueBlock(), block); + ASSERT_EQ(input.valueBlockId(), "abc"); + + input.setValueBlockId("hello"); + ASSERT_EQ(input.valueBlockId(), "hello"); + ASSERT_EQ(input.valueBlock(), nullptr); +}