Skip to content

Commit beeed1e

Browse files
authored
Merge pull request #135 from scratchcpp/blockprototype_test
Complete BlockPrototype test
2 parents e3c232b + 2cbc779 commit beeed1e

File tree

1 file changed

+54
-1
lines changed

1 file changed

+54
-1
lines changed

test/scratch_classes/blockprototype_test.cpp

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,38 @@
33

44
using namespace libscratchcpp;
55

6+
TEST(BlockPrototypeTest, Constructors)
7+
{
8+
BlockPrototype p1;
9+
ASSERT_EQ(p1.procCode(), "");
10+
ASSERT_TRUE(p1.argumentTypes().empty());
11+
ASSERT_TRUE(p1.argumentDefaults().empty());
12+
ASSERT_FALSE(p1.warp());
13+
14+
BlockPrototype p2("test block");
15+
ASSERT_EQ(p2.procCode(), "test block");
16+
ASSERT_TRUE(p2.argumentTypes().empty());
17+
ASSERT_TRUE(p2.argumentDefaults().empty());
18+
ASSERT_FALSE(p2.warp());
19+
20+
BlockPrototype p3("test %s block %s %b");
21+
ASSERT_EQ(p3.procCode(), "test %s block %s %b");
22+
ASSERT_EQ(
23+
p3.argumentTypes(),
24+
std::vector<BlockPrototype::ArgType>({
25+
BlockPrototype::ArgType::StringNum,
26+
BlockPrototype::ArgType::StringNum,
27+
BlockPrototype::ArgType::Bool,
28+
}));
29+
ASSERT_EQ(p3.argumentDefaults(), std::vector<Value>({ "", "", false }));
30+
ASSERT_FALSE(p3.warp());
31+
}
32+
633
TEST(BlockPrototypeTest, ProcCode)
734
{
8-
BlockPrototype prototype("test block");
35+
BlockPrototype prototype;
36+
37+
prototype.setProcCode("test block");
938
ASSERT_EQ(prototype.procCode(), "test block");
1039
ASSERT_TRUE(prototype.argumentTypes().empty());
1140
ASSERT_TRUE(prototype.argumentDefaults().empty());
@@ -28,3 +57,27 @@ TEST(BlockPrototypeTest, ProcCode)
2857
std::vector<BlockPrototype::ArgType>({ BlockPrototype::ArgType::Bool, BlockPrototype::ArgType::StringNum, BlockPrototype::ArgType::Bool, BlockPrototype::ArgType::Bool }));
2958
ASSERT_EQ(prototype.argumentDefaults(), std::vector<Value>({ false, "", false, false }));
3059
}
60+
61+
TEST(BlockPrototypeTest, ArgumentIds)
62+
{
63+
BlockPrototype prototype;
64+
65+
prototype.setArgumentIds({ "a", "b", "c" });
66+
ASSERT_EQ(prototype.argumentIds(), std::vector<std::string>({ "a", "b", "c" }));
67+
}
68+
69+
TEST(BlockPrototypeTest, ArgumentNames)
70+
{
71+
BlockPrototype prototype;
72+
73+
prototype.setArgumentNames({ "arg1", "arg2", "arg3" });
74+
ASSERT_EQ(prototype.argumentNames(), std::vector<std::string>({ "arg1", "arg2", "arg3" }));
75+
}
76+
77+
TEST(BlockPrototypeTest, Warp)
78+
{
79+
BlockPrototype prototype;
80+
81+
prototype.setWarp(true);
82+
ASSERT_TRUE(prototype.warp());
83+
}

0 commit comments

Comments
 (0)