@@ -448,21 +448,43 @@ TEST(SpriteTest, Dragging)
448448TEST (SpriteTest, Size)
449449{
450450 Sprite sprite;
451+ SpriteHandlerMock handler;
452+ EXPECT_CALL (handler, init);
453+ sprite.setInterface (&handler);
451454 ASSERT_EQ (sprite.size (), 100 );
452455
453456 EngineMock engine;
454457 sprite.setEngine (&engine);
455- EXPECT_CALL (engine, requestRedraw ()).Times (4 );
458+ EXPECT_CALL (engine, requestRedraw ()).WillRepeatedly (Return ());
459+ EXPECT_CALL (engine, stageWidth ()).WillRepeatedly (Return (480 ));
460+ EXPECT_CALL (engine, stageHeight ()).WillRepeatedly (Return (360 ));
461+ EXPECT_CALL (handler, onSizeChanged).WillRepeatedly (Return ());
456462
463+ EXPECT_CALL (handler, costumeWidth ()).WillRepeatedly (Return (50 ));
464+ EXPECT_CALL (handler, costumeHeight ()).WillRepeatedly (Return (30 ));
457465 sprite.setSize (63.724 );
458466 ASSERT_EQ (sprite.size (), 63.724 );
459-
460- sprite.setCostumeIndex (1 );
467+ sprite.setSize (0 );
468+ ASSERT_EQ (std::round (sprite.size () * 100 ) / 100 , 16.67 );
469+ sprite.setSize (2000 );
470+ ASSERT_EQ (sprite.size (), 1440 );
471+
472+ EXPECT_CALL (handler, costumeWidth ()).WillRepeatedly (Return (30 ));
473+ EXPECT_CALL (handler, costumeHeight ()).WillRepeatedly (Return (50 ));
474+ sprite.setSize (0 );
475+ ASSERT_EQ (std::round (sprite.size () * 100 ) / 100 , 16.67 );
476+ sprite.setSize (2000 );
477+ ASSERT_EQ (sprite.size (), 1080 );
478+
479+ EXPECT_CALL (handler, costumeWidth ()).WillRepeatedly (Return (88 ));
480+ EXPECT_CALL (handler, costumeHeight ()).WillRepeatedly (Return (88 ));
481+ sprite.setSize (0 );
482+ ASSERT_EQ (std::round (sprite.size () * 100 ) / 100 , 5.68 );
483+ sprite.setSize (2000 );
484+ ASSERT_EQ (std::round (sprite.size () * 100 ) / 100 , 613.64 );
461485
462486 sprite.setSize (186.84 );
463487 ASSERT_EQ (sprite.size (), 186.84 );
464-
465- sprite.setCostumeIndex (0 );
466488}
467489
468490TEST (SpriteTest, CostumeIndex)
0 commit comments