Skip to content

Commit 50efa7d

Browse files
committed
Add InputValue test
1 parent 7c94ced commit 50efa7d

File tree

2 files changed

+118
-0
lines changed

2 files changed

+118
-0
lines changed

test/scratch_classes/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,17 @@ target_link_libraries(
123123
)
124124

125125
gtest_discover_tests(input_test)
126+
127+
# inputvalue_test
128+
add_executable(
129+
inputvalue_test
130+
inputvalue_test.cpp
131+
)
132+
133+
target_link_libraries(
134+
inputvalue_test
135+
GTest::gtest_main
136+
scratchcpp
137+
)
138+
139+
gtest_discover_tests(inputvalue_test)
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
#include <scratchcpp/inputvalue.h>
2+
#include <scratchcpp/block.h>
3+
#include <scratchcpp/broadcast.h>
4+
#include <scratchcpp/variable.h>
5+
#include <scratchcpp/list.h>
6+
7+
#include "../common.h"
8+
9+
using namespace libscratchcpp;
10+
11+
TEST(InputValueTest, Constructors)
12+
{
13+
InputValue value1;
14+
ASSERT_EQ(value1.type(), InputValue::Type::Number);
15+
16+
InputValue value2(InputValue::Type::String);
17+
ASSERT_EQ(value2.type(), InputValue::Type::String);
18+
}
19+
20+
TEST(InputTest, Type)
21+
{
22+
InputValue value;
23+
24+
value.setType(InputValue::Type::Color);
25+
ASSERT_EQ(value.type(), InputValue::Type::Color);
26+
}
27+
28+
TEST(InputTest, Value)
29+
{
30+
InputValue value;
31+
ASSERT_EQ(value.value(), Value());
32+
33+
value.setValue("test");
34+
ASSERT_EQ(value.value().toString(), "test");
35+
}
36+
37+
TEST(InputTest, ValueBlock)
38+
{
39+
InputValue value;
40+
ASSERT_EQ(value.valueBlock(), nullptr);
41+
ASSERT_EQ(value.valueBlockId(), "");
42+
43+
auto block = std::make_shared<Block>("abc", "");
44+
value.setValueBlock(block);
45+
ASSERT_EQ(value.valueBlock(), block);
46+
ASSERT_EQ(value.valueBlockId(), "abc");
47+
48+
value.setValueBlock(nullptr);
49+
ASSERT_EQ(value.valueBlock(), nullptr);
50+
ASSERT_EQ(value.valueBlockId(), "");
51+
52+
value.setValueBlockId("hello");
53+
ASSERT_EQ(value.valueBlockId(), "hello");
54+
ASSERT_EQ(value.valueBlock(), nullptr);
55+
}
56+
57+
TEST(InputTest, ValuePtr)
58+
{
59+
InputValue value1;
60+
ASSERT_EQ(value1.valuePtr(), nullptr);
61+
ASSERT_EQ(value1.valueId(), "");
62+
63+
auto broadcast = std::make_shared<Broadcast>("abc", "");
64+
value1.setValuePtr(broadcast);
65+
ASSERT_EQ(value1.valuePtr(), broadcast);
66+
ASSERT_EQ(value1.valueId(), "abc");
67+
ASSERT_EQ(value1.type(), InputValue::Type::Broadcast);
68+
69+
auto variable = std::make_shared<Variable>("def", "");
70+
value1.setValuePtr(variable);
71+
ASSERT_EQ(value1.valuePtr(), variable);
72+
ASSERT_EQ(value1.valueId(), "def");
73+
ASSERT_EQ(value1.type(), InputValue::Type::Variable);
74+
75+
auto list = std::make_shared<List>("ghi", "");
76+
value1.setValuePtr(list);
77+
ASSERT_EQ(value1.valuePtr(), list);
78+
ASSERT_EQ(value1.valueId(), "ghi");
79+
ASSERT_EQ(value1.type(), InputValue::Type::List);
80+
81+
auto block = std::make_shared<Block>("jkl", "");
82+
value1.setValuePtr(block);
83+
ASSERT_EQ(value1.valuePtr(), nullptr);
84+
ASSERT_EQ(value1.valueId(), "");
85+
ASSERT_EQ(value1.type(), InputValue::Type::List);
86+
87+
value1.setValuePtr(nullptr);
88+
ASSERT_EQ(value1.valuePtr(), nullptr);
89+
ASSERT_EQ(value1.valueId(), "");
90+
ASSERT_EQ(value1.type(), InputValue::Type::List);
91+
92+
InputValue value2(InputValue::Type::Integer);
93+
94+
value2.setValuePtr(block);
95+
ASSERT_EQ(value2.valuePtr(), nullptr);
96+
ASSERT_EQ(value1.valueId(), "");
97+
ASSERT_EQ(value2.type(), InputValue::Type::Integer);
98+
99+
value2.setValuePtr(variable);
100+
value2.setValueId("hello");
101+
ASSERT_EQ(value2.valuePtr(), nullptr);
102+
ASSERT_EQ(value2.valueId(), "hello");
103+
ASSERT_EQ(value2.type(), InputValue::Type::Variable);
104+
}

0 commit comments

Comments
 (0)