diff --git a/include/scratchcpp/variable.h b/include/scratchcpp/variable.h index f05dac94..9dc644f5 100644 --- a/include/scratchcpp/variable.h +++ b/include/scratchcpp/variable.h @@ -16,7 +16,6 @@ class LIBSCRATCHCPP_EXPORT Variable : public Entity { public: Variable(const std::string &id, const std::string &name, const Value &value = Value(), bool isCloudVariable = false); - Variable(const std::string &id, const std::string &name, bool isCloudVariable); Variable(const Variable &) = delete; const std::string &name() const; @@ -30,8 +29,6 @@ class LIBSCRATCHCPP_EXPORT Variable : public Entity bool isCloudVariable() const; void setIsCloudVariable(bool isCloudVariable); - void add(const Value &v); - private: spimpl::unique_impl_ptr impl; }; diff --git a/src/scratch/variable.cpp b/src/scratch/variable.cpp index ed5db4aa..87b15600 100644 --- a/src/scratch/variable.cpp +++ b/src/scratch/variable.cpp @@ -13,12 +13,6 @@ Variable::Variable(const std::string &id, const std::string &name, const Value & { } -/*! Constructs an empty Variable. */ -Variable::Variable(const std::string &id, const std::string &name, bool isCloudVariable) : - Variable(id, name, Value(), isCloudVariable) -{ -} - /*! Returns the name of the variable. */ const std::string &Variable::name() const { @@ -54,9 +48,3 @@ void Variable::setIsCloudVariable(bool isCloudVariable) { impl->isCloudVariable = isCloudVariable; } - -/*! Adds the given value to the variable's value. \see Value::add() */ -void Variable::add(const Value &v) -{ - impl->value.add(v); -} diff --git a/test/scratch_classes/CMakeLists.txt b/test/scratch_classes/CMakeLists.txt index 8fc62437..787496d7 100644 --- a/test/scratch_classes/CMakeLists.txt +++ b/test/scratch_classes/CMakeLists.txt @@ -169,3 +169,17 @@ target_link_libraries( ) gtest_discover_tests(block_test) + +# variable_test +add_executable( + variable_test + variable_test.cpp +) + +target_link_libraries( + variable_test + GTest::gtest_main + scratchcpp +) + +gtest_discover_tests(variable_test) diff --git a/test/scratch_classes/variable_test.cpp b/test/scratch_classes/variable_test.cpp new file mode 100644 index 00000000..265af866 --- /dev/null +++ b/test/scratch_classes/variable_test.cpp @@ -0,0 +1,58 @@ +#include + +#include "../common.h" + +using namespace libscratchcpp; + +TEST(VariableTest, Constructors) +{ + Variable var1("abc", "var1"); + ASSERT_EQ(var1.id(), "abc"); + ASSERT_EQ(var1.name(), "var1"); + ASSERT_EQ(var1.value(), Value()); + ASSERT_FALSE(var1.isCloudVariable()); + + Variable var2("abc", "var2", "test"); + ASSERT_EQ(var2.id(), "abc"); + ASSERT_EQ(var2.name(), "var2"); + ASSERT_EQ(var2.value().toString(), "test"); + ASSERT_FALSE(var2.isCloudVariable()); + + Variable var3("abc", "var3", "test", true); + ASSERT_EQ(var3.id(), "abc"); + ASSERT_EQ(var3.name(), "var3"); + ASSERT_EQ(var3.value().toString(), "test"); + ASSERT_TRUE(var3.isCloudVariable()); + + Variable var4("abc", "var4", "test", false); + ASSERT_EQ(var4.id(), "abc"); + ASSERT_EQ(var4.name(), "var4"); + ASSERT_EQ(var4.value().toString(), "test"); + ASSERT_FALSE(var4.isCloudVariable()); +} + +TEST(VariableTest, Value) +{ + Variable var("", ""); + + var.setValue("hello"); + ASSERT_EQ(var.value().toString(), "hello"); +} + +TEST(VariableTest, ValuePtr) +{ + Variable var("", ""); + ASSERT_TRUE(var.valuePtr()); + ASSERT_EQ(*var.valuePtr(), Value()); + + var.setValue("Hello, world!"); + ASSERT_EQ(var.valuePtr()->toString(), "Hello, world!"); +} + +TEST(VariableTest, IsCloudVariable) +{ + Variable var("", ""); + + var.setIsCloudVariable(true); + ASSERT_TRUE(var.isCloudVariable()); +}