Skip to content

Commit 5116950

Browse files
committed
Add Field test
1 parent 778a6b2 commit 5116950

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

test/scratch_classes/CMakeLists.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,17 @@ target_link_libraries(
137137
)
138138

139139
gtest_discover_tests(inputvalue_test)
140+
141+
# field_test
142+
add_executable(
143+
field_test
144+
field_test.cpp
145+
)
146+
147+
target_link_libraries(
148+
field_test
149+
GTest::gtest_main
150+
scratchcpp
151+
)
152+
153+
gtest_discover_tests(field_test)
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#include <scratchcpp/field.h>
2+
#include <scratchcpp/broadcast.h>
3+
#include <scratchcpp/variable.h>
4+
#include <scratchcpp/list.h>
5+
6+
#include "../common.h"
7+
8+
using namespace libscratchcpp;
9+
10+
class FieldTest : public testing::Test
11+
{
12+
public:
13+
void SetUp() override
14+
{
15+
m_broadcast = std::make_shared<Broadcast>("broadcast", "");
16+
m_variable = std::make_shared<Variable>("variable", "");
17+
m_list = std::make_shared<List>("list", "");
18+
}
19+
20+
std::shared_ptr<Broadcast> m_broadcast;
21+
std::shared_ptr<Variable> m_variable;
22+
std::shared_ptr<List> m_list;
23+
};
24+
25+
TEST_F(FieldTest, Constructors)
26+
{
27+
Field field1("VARIABLE", "");
28+
ASSERT_EQ(field1.name(), "VARIABLE");
29+
ASSERT_EQ(field1.value().toString(), "");
30+
ASSERT_EQ(field1.valuePtr(), nullptr);
31+
ASSERT_EQ(field1.valueId(), "");
32+
33+
Field field2("VARIABLE", "variable1", m_variable);
34+
ASSERT_EQ(field2.name(), "VARIABLE");
35+
ASSERT_EQ(field2.value().toString(), "variable1");
36+
ASSERT_EQ(field2.valuePtr(), m_variable);
37+
ASSERT_EQ(field2.valueId(), "variable");
38+
39+
Field field3("LIST", "list1", std::string("list"));
40+
ASSERT_EQ(field3.name(), "LIST");
41+
ASSERT_EQ(field3.value().toString(), "list1");
42+
ASSERT_EQ(field3.valuePtr(), nullptr);
43+
ASSERT_EQ(field3.valueId(), "list");
44+
45+
Field field4("LIST", "list1", "list");
46+
ASSERT_EQ(field4.name(), "LIST");
47+
ASSERT_EQ(field4.value().toString(), "list1");
48+
ASSERT_EQ(field4.valuePtr(), nullptr);
49+
ASSERT_EQ(field4.valueId(), "list");
50+
}
51+
52+
TEST_F(FieldTest, FieldId)
53+
{
54+
Field field("", Value());
55+
ASSERT_EQ(field.fieldId(), -1);
56+
57+
field.setFieldId(2);
58+
ASSERT_EQ(field.fieldId(), 2);
59+
}
60+
61+
TEST_F(FieldTest, ValuePtr)
62+
{
63+
Field field("", Value());
64+
65+
field.setValuePtr(m_broadcast);
66+
ASSERT_EQ(field.valuePtr(), m_broadcast);
67+
ASSERT_EQ(field.valueId(), "broadcast");
68+
69+
field.setValuePtr(nullptr);
70+
ASSERT_EQ(field.valuePtr(), nullptr);
71+
ASSERT_EQ(field.valueId(), "");
72+
}
73+
74+
TEST_F(FieldTest, SpecialValueId)
75+
{
76+
Field field("", Value());
77+
ASSERT_EQ(field.specialValueId(), -1);
78+
79+
field.setSpecialValueId(5);
80+
ASSERT_EQ(field.specialValueId(), 5);
81+
}

0 commit comments

Comments
 (0)