@@ -27,36 +27,36 @@ TEST(SpriteTest, Visible)
2727
2828TEST (SpriteTest, Clone)
2929{
30- Sprite sprite;
31- sprite. setName (" Sprite1" );
30+ std::unique_ptr< Sprite> sprite = std::make_unique<Sprite>() ;
31+ sprite-> setName (" Sprite1" );
3232 auto var1 = std::make_shared<Variable>(" a" , " var1" , " hello" );
3333 auto var2 = std::make_shared<Variable>(" b" , " var2" , " world" );
34- sprite. addVariable (var1);
35- sprite. addVariable (var2);
34+ sprite-> addVariable (var1);
35+ sprite-> addVariable (var2);
3636 auto c1 = std::make_shared<Costume>(" costume1" , " " , " svg" );
37- sprite. addCostume (c1);
37+ sprite-> addCostume (c1);
3838
3939 auto list1 = std::make_shared<List>(" c" , " list1" );
4040 list1->push_back (" item1" );
4141 list1->push_back (" item2" );
4242 auto list2 = std::make_shared<List>(" d" , " list2" );
4343 list2->push_back (" test" );
44- sprite. addList (list1);
45- sprite. addList (list2);
46-
47- sprite. addCostume (std::make_shared<Costume>(" " , " " , " " ));
48- sprite. addCostume (std::make_shared<Costume>(" " , " " , " " ));
49- sprite. setCurrentCostume (2 );
50- sprite. setLayerOrder (5 );
51- sprite. setVolume (50 );
52-
53- sprite. setVisible (false );
54- sprite. setX (100.25 );
55- sprite. setY (-45.43 );
56- sprite. setSize (54.121 );
57- sprite. setDirection (179.4 );
58- sprite. setDraggable (true );
59- sprite. setRotationStyle (Sprite::RotationStyle::DoNotRotate);
44+ sprite-> addList (list1);
45+ sprite-> addList (list2);
46+
47+ sprite-> addCostume (std::make_shared<Costume>(" " , " " , " " ));
48+ sprite-> addCostume (std::make_shared<Costume>(" " , " " , " " ));
49+ sprite-> setCurrentCostume (2 );
50+ sprite-> setLayerOrder (5 );
51+ sprite-> setVolume (50 );
52+
53+ sprite-> setVisible (false );
54+ sprite-> setX (100.25 );
55+ sprite-> setY (-45.43 );
56+ sprite-> setSize (54.121 );
57+ sprite-> setDirection (179.4 );
58+ sprite-> setDraggable (true );
59+ sprite-> setRotationStyle (Sprite::RotationStyle::DoNotRotate);
6060
6161 auto checkCloneData = [](Sprite *clone) {
6262 ASSERT_TRUE (clone);
@@ -97,42 +97,42 @@ TEST(SpriteTest, Clone)
9797 ASSERT_EQ (clone->rotationStyle (), Sprite::RotationStyle::DoNotRotate);
9898 };
9999
100- ASSERT_FALSE (sprite. isClone ());
101- ASSERT_EQ (sprite. cloneRoot (), nullptr );
102- ASSERT_EQ (sprite. cloneParent (), nullptr );
100+ ASSERT_FALSE (sprite-> isClone ());
101+ ASSERT_EQ (sprite-> cloneRoot (), nullptr );
102+ ASSERT_EQ (sprite-> cloneParent (), nullptr );
103103
104- ASSERT_EQ (sprite. clone (), nullptr );
105- ASSERT_FALSE (sprite. isClone ());
106- ASSERT_EQ (sprite. cloneRoot (), nullptr );
107- ASSERT_EQ (sprite. cloneParent (), nullptr );
104+ ASSERT_EQ (sprite-> clone (), nullptr );
105+ ASSERT_FALSE (sprite-> isClone ());
106+ ASSERT_EQ (sprite-> cloneRoot (), nullptr );
107+ ASSERT_EQ (sprite-> cloneParent (), nullptr );
108108
109109 EngineMock engine;
110- sprite. setEngine (&engine);
110+ sprite-> setEngine (&engine);
111111
112112 Sprite *clone1;
113113 EXPECT_CALL (engine, initClone (_)).WillOnce (SaveArg<0 >(&clone1));
114- ASSERT_EQ (sprite. clone ().get (), clone1);
115- ASSERT_FALSE (sprite. isClone ());
116- ASSERT_EQ (sprite. cloneRoot (), nullptr );
117- ASSERT_EQ (sprite. cloneParent (), nullptr );
114+ ASSERT_EQ (sprite-> clone ().get (), clone1);
115+ ASSERT_FALSE (sprite-> isClone ());
116+ ASSERT_EQ (sprite-> cloneRoot (), nullptr );
117+ ASSERT_EQ (sprite-> cloneParent (), nullptr );
118118
119119 ASSERT_TRUE (clone1->isClone ());
120- ASSERT_EQ (clone1->cloneRoot (), & sprite);
121- ASSERT_EQ (clone1->cloneParent (), & sprite);
120+ ASSERT_EQ (clone1->cloneRoot (), sprite. get () );
121+ ASSERT_EQ (clone1->cloneParent (), sprite. get () );
122122
123123 checkCloneData (clone1);
124124
125125 // Modify root sprite data to make sure parent is used
126- sprite. setLayerOrder (3 );
126+ sprite-> setLayerOrder (3 );
127127
128128 Sprite *clone2;
129129 EXPECT_CALL (engine, initClone (_)).WillOnce (SaveArg<0 >(&clone2));
130130 ASSERT_EQ (clone1->clone ().get (), clone2);
131131 ASSERT_TRUE (clone1->isClone ());
132- ASSERT_EQ (clone1->cloneRoot (), & sprite);
133- ASSERT_EQ (clone1->cloneParent (), & sprite);
132+ ASSERT_EQ (clone1->cloneRoot (), sprite. get () );
133+ ASSERT_EQ (clone1->cloneParent (), sprite. get () );
134134 ASSERT_TRUE (clone2->isClone ());
135- ASSERT_EQ (clone2->cloneRoot (), & sprite);
135+ ASSERT_EQ (clone2->cloneRoot (), sprite. get () );
136136 ASSERT_EQ (clone2->cloneParent (), clone1);
137137
138138 checkCloneData (clone2);
@@ -143,10 +143,10 @@ TEST(SpriteTest, Clone)
143143
144144 Sprite *clone4;
145145 EXPECT_CALL (engine, initClone (_)).WillOnce (SaveArg<0 >(&clone4));
146- ASSERT_EQ (sprite. clone ().get (), clone4);
146+ ASSERT_EQ (sprite-> clone ().get (), clone4);
147147
148148 // children
149- const auto &children1 = sprite. children ();
149+ const auto &children1 = sprite-> children ();
150150 ASSERT_EQ (children1.size (), 2 );
151151 ASSERT_EQ (children1[0 ].get (), clone1);
152152 ASSERT_EQ (children1[1 ].get (), clone4);
@@ -163,7 +163,7 @@ TEST(SpriteTest, Clone)
163163 ASSERT_TRUE (clone4->children ().empty ());
164164
165165 // allChildren
166- auto allChildren = sprite. allChildren ();
166+ auto allChildren = sprite-> allChildren ();
167167 ASSERT_EQ (allChildren.size (), 4 );
168168 ASSERT_EQ (allChildren[0 ].get (), clone1);
169169 ASSERT_EQ (allChildren[1 ].get (), clone2);
@@ -181,10 +181,24 @@ TEST(SpriteTest, Clone)
181181
182182 ASSERT_TRUE (clone4->allChildren ().empty ());
183183
184- ASSERT_EQ (clone2->costumes (), sprite. costumes ());
184+ ASSERT_EQ (clone2->costumes (), sprite-> costumes ());
185185 auto c2 = std::make_shared<Costume>(" costume2" , " " , " png" );
186186 clone2->addCostume (c2);
187- ASSERT_EQ (clone2->costumes (), sprite.costumes ());
187+ ASSERT_EQ (clone2->costumes (), sprite->costumes ());
188+
189+ EXPECT_CALL (engine, deinitClone (clone2));
190+ clone2->~Sprite ();
191+
192+ EXPECT_CALL (engine, deinitClone (clone3));
193+ clone3->~Sprite ();
194+
195+ EXPECT_CALL (engine, deinitClone (clone1)).Times (2 );
196+ clone1->~Sprite ();
197+
198+ EXPECT_CALL (engine, deinitClone (clone4)).Times (2 );
199+ clone4->~Sprite ();
200+
201+ sprite.reset ();
188202}
189203
190204TEST (SpriteTest, X)
0 commit comments