@@ -29,8 +29,15 @@ TEST(SpriteTest, Visible)
2929{
3030 Sprite sprite;
3131 ASSERT_TRUE (sprite.visible ());
32+ EngineMock engine;
33+ sprite.setEngine (&engine);
34+
3235 sprite.setVisible (false );
3336 ASSERT_FALSE (sprite.visible ());
37+
38+ EXPECT_CALL (engine, breakFrame ());
39+ sprite.setVisible (true );
40+ ASSERT_TRUE (sprite.visible ());
3441}
3542
3643TEST (SpriteTest, Clone)
@@ -116,6 +123,7 @@ TEST(SpriteTest, Clone)
116123
117124 EngineMock engine;
118125 sprite->setEngine (&engine);
126+ EXPECT_CALL (engine, breakFrame ()).Times (2 );
119127
120128 Sprite *clone1;
121129 EXPECT_CALL (engine, initClone (_)).WillOnce (SaveArg<0 >(&clone1));
@@ -145,6 +153,8 @@ TEST(SpriteTest, Clone)
145153
146154 checkCloneData (clone2);
147155
156+ sprite->setVisible (true );
157+
148158 Sprite *clone3;
149159 EXPECT_CALL (engine, initClone (_)).WillOnce (SaveArg<0 >(&clone3));
150160 ASSERT_EQ (clone1->clone ().get (), clone3);
@@ -215,6 +225,11 @@ TEST(SpriteTest, XY)
215225 ASSERT_EQ (sprite.x (), 0 );
216226 ASSERT_EQ (sprite.y (), 0 );
217227
228+ EngineMock engine;
229+ sprite.setEngine (&engine);
230+ EXPECT_CALL (engine, breakFrame ()).Times (18 );
231+ EXPECT_CALL (engine, spriteFencingEnabled ()).Times (4 ).WillRepeatedly (Return (false ));
232+
218233 sprite.setX (-53.25 );
219234 ASSERT_EQ (sprite.x (), -53.25 );
220235
@@ -260,7 +275,6 @@ TEST(SpriteTest, XY)
260275 EXPECT_CALL (*imageFormat, colorAt (3 , 2 , 1 )).WillOnce (Return (rgba (0 , 0 , 0 , 0 )));
261276 costume->setData (5 , data);
262277
263- EngineMock engine;
264278 sprite.setEngine (&engine);
265279 sprite.setDirection (34.45 );
266280
@@ -384,6 +398,10 @@ TEST(SpriteTest, Size)
384398
385399 ASSERT_EQ (c1->scale (), 1 );
386400
401+ EngineMock engine;
402+ sprite.setEngine (&engine);
403+ EXPECT_CALL (engine, breakFrame ()).Times (4 );
404+
387405 sprite.setSize (63.724 );
388406 ASSERT_EQ (sprite.size (), 63.724 );
389407 ASSERT_EQ (std::round (c1->scale () * 100000 ) / 100000 , 0.63724 );
@@ -399,11 +417,34 @@ TEST(SpriteTest, Size)
399417 ASSERT_EQ (std::round (c1->scale () * 10000 ) / 10000 , 1.8684 );
400418}
401419
420+ TEST (SpriteTest, CostumeIndex)
421+ {
422+ Sprite sprite;
423+ EngineMock engine;
424+ sprite.setEngine (&engine);
425+ EXPECT_CALL (engine, breakFrame ()).Times (2 );
426+
427+ auto c1 = std::make_shared<Costume>(" " , " " , " " );
428+ auto c2 = std::make_shared<Costume>(" " , " " , " " );
429+ sprite.addCostume (c1);
430+ sprite.addCostume (c2);
431+
432+ sprite.setCostumeIndex (0 );
433+ ASSERT_EQ (sprite.costumeIndex (), 0 );
434+
435+ sprite.setCostumeIndex (1 );
436+ ASSERT_EQ (sprite.costumeIndex (), 1 );
437+ }
438+
402439TEST (SpriteTest, Direction)
403440{
404441 Sprite sprite;
405442 ASSERT_EQ (sprite.direction (), 90 );
406443
444+ EngineMock engine;
445+ sprite.setEngine (&engine);
446+ EXPECT_CALL (engine, breakFrame ()).Times (10 );
447+
407448 sprite.setDirection (-42.75 );
408449 ASSERT_EQ (sprite.direction (), -42.75 );
409450
@@ -457,6 +498,10 @@ TEST(SpriteTest, RotationStyle)
457498
458499 ASSERT_EQ (c1->mirrorHorizontally (), false );
459500
501+ EngineMock engine;
502+ sprite.setEngine (&engine);
503+ EXPECT_CALL (engine, breakFrame ()).Times (8 );
504+
460505 sprite.setRotationStyle (Sprite::RotationStyle::DoNotRotate);
461506 ASSERT_EQ (sprite.rotationStyle (), Sprite::RotationStyle::DoNotRotate);
462507 ASSERT_EQ (sprite.rotationStyleStr (), " don't rotate" );
@@ -486,6 +531,8 @@ TEST(SpriteTest, RotationStyle)
486531 sprite.setCostumeIndex (1 );
487532 ASSERT_EQ (c2->mirrorHorizontally (), false );
488533
534+ sprite.setVisible (false );
535+
489536 sprite.setRotationStyle (" don't rotate" );
490537 ASSERT_EQ (sprite.rotationStyle (), Sprite::RotationStyle::DoNotRotate);
491538 ASSERT_EQ (sprite.rotationStyleStr (), " don't rotate" );
@@ -624,6 +671,11 @@ TEST(SpriteTest, GraphicsEffects)
624671 auto c2 = std::make_shared<Costume>(" " , " " , " " );
625672
626673 Sprite sprite;
674+
675+ EngineMock engine;
676+ sprite.setEngine (&engine);
677+ EXPECT_CALL (engine, breakFrame ()).Times (6 );
678+
627679 sprite.addCostume (c1);
628680 sprite.addCostume (c2);
629681 sprite.setCostumeIndex (0 );
0 commit comments