Skip to content

Commit c187470

Browse files
authored
Merge pull request #139 from scratchcpp/sprite_test
Complete Sprite test
2 parents 6d81d7c + 0e7b2f0 commit c187470

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed

test/scratch_classes/sprite_test.cpp

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,113 @@
44

55
using namespace libscratchcpp;
66

7+
TEST(SpriteTest, Visible)
8+
{
9+
Sprite sprite;
10+
ASSERT_TRUE(sprite.visible());
11+
sprite.setVisible(false);
12+
ASSERT_FALSE(sprite.visible());
13+
}
14+
15+
TEST(SpriteTest, X)
16+
{
17+
Sprite sprite;
18+
ASSERT_EQ(sprite.x(), 0);
19+
20+
sprite.setX(-53.25);
21+
ASSERT_EQ(sprite.x(), -53.25);
22+
23+
sprite.setX(239.999);
24+
ASSERT_EQ(sprite.x(), 239.999);
25+
}
26+
27+
TEST(SpriteTest, Y)
28+
{
29+
Sprite sprite;
30+
ASSERT_EQ(sprite.y(), 0);
31+
32+
sprite.setY(-53.25);
33+
ASSERT_EQ(sprite.y(), -53.25);
34+
35+
sprite.setY(179.999);
36+
ASSERT_EQ(sprite.y(), 179.999);
37+
}
38+
39+
TEST(SpriteTest, Size)
40+
{
41+
Sprite sprite;
42+
ASSERT_EQ(sprite.size(), 100);
43+
sprite.setSize(63.724);
44+
ASSERT_EQ(sprite.size(), 63.724);
45+
}
46+
47+
TEST(SpriteTest, Direction)
48+
{
49+
Sprite sprite;
50+
ASSERT_EQ(sprite.direction(), 90);
51+
52+
sprite.setDirection(-42.75);
53+
ASSERT_EQ(sprite.direction(), -42.75);
54+
55+
sprite.setDirection(145.2);
56+
ASSERT_EQ(sprite.direction(), 145.2);
57+
}
58+
59+
TEST(SpriteTest, Draggable)
60+
{
61+
Sprite sprite;
62+
ASSERT_FALSE(sprite.draggable());
63+
sprite.setDraggable(true);
64+
ASSERT_TRUE(sprite.draggable());
65+
}
66+
767
TEST(SpriteTest, RotationStyle)
868
{
969
Sprite sprite;
1070
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::AllAround); // default
1171
ASSERT_EQ(sprite.rotationStyleStr(), "all around");
1272

1373
sprite.setRotationStyle(Sprite::RotationStyle::DoNotRotate);
74+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::DoNotRotate);
1475
ASSERT_EQ(sprite.rotationStyleStr(), "don't rotate");
1576

1677
sprite.setRotationStyle(Sprite::RotationStyle::LeftRight);
78+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::LeftRight);
1779
ASSERT_EQ(sprite.rotationStyleStr(), "left-right");
1880

1981
sprite.setRotationStyle(Sprite::RotationStyle::AllAround);
82+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::AllAround);
83+
ASSERT_EQ(sprite.rotationStyleStr(), "all around");
84+
85+
sprite.setRotationStyle("invalid");
86+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::AllAround); // shouldn't change
87+
ASSERT_EQ(sprite.rotationStyleStr(), "all around");
88+
89+
sprite.setRotationStyle("don't rotate");
90+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::DoNotRotate);
91+
ASSERT_EQ(sprite.rotationStyleStr(), "don't rotate");
92+
93+
sprite.setRotationStyle("left-right");
94+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::LeftRight);
95+
ASSERT_EQ(sprite.rotationStyleStr(), "left-right");
96+
97+
sprite.setRotationStyle("all around");
98+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::AllAround);
99+
ASSERT_EQ(sprite.rotationStyleStr(), "all around");
100+
101+
sprite.setRotationStyle(std::string("invalid"));
102+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::AllAround); // shouldn't change
103+
ASSERT_EQ(sprite.rotationStyleStr(), "all around");
104+
105+
sprite.setRotationStyle(std::string("don't rotate"));
106+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::DoNotRotate);
107+
ASSERT_EQ(sprite.rotationStyleStr(), "don't rotate");
108+
109+
sprite.setRotationStyle(std::string("left-right"));
110+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::LeftRight);
111+
ASSERT_EQ(sprite.rotationStyleStr(), "left-right");
112+
113+
sprite.setRotationStyle(std::string("all around"));
114+
ASSERT_EQ(sprite.rotationStyle(), Sprite::RotationStyle::AllAround);
20115
ASSERT_EQ(sprite.rotationStyleStr(), "all around");
21116
}

0 commit comments

Comments
 (0)