@@ -25,6 +25,47 @@ TEST(SpriteModelTest, Init)
2525 ASSERT_EQ (model.sprite (), &sprite);
2626}
2727
28+ TEST (SpriteModelTest, OnCloned)
29+ {
30+ SpriteModel model;
31+
32+ Sprite clone1;
33+ QSignalSpy spy1 (&model, &SpriteModel::cloned);
34+ model.onCloned (&clone1);
35+ ASSERT_EQ (spy1.count (), 1 );
36+
37+ QList<QVariant> args = spy1.takeFirst ();
38+ ASSERT_EQ (args.size (), 1 );
39+ SpriteModel *cloneModel = args.at (0 ).value <SpriteModel *>();
40+ ASSERT_TRUE (cloneModel);
41+ ASSERT_EQ (cloneModel->parent (), &model);
42+ ASSERT_EQ (cloneModel->sprite (), &clone1);
43+ spy1.clear ();
44+
45+ Sprite clone2;
46+ model.onCloned (&clone2);
47+ ASSERT_EQ (spy1.count (), 1 );
48+
49+ args = spy1.takeFirst ();
50+ ASSERT_EQ (args.size (), 1 );
51+ cloneModel = args.at (0 ).value <SpriteModel *>();
52+ ASSERT_TRUE (cloneModel);
53+ ASSERT_EQ (cloneModel->parent (), &model);
54+ ASSERT_EQ (cloneModel->sprite (), &clone2);
55+
56+ Sprite clone3;
57+ QSignalSpy spy2 (cloneModel, &SpriteModel::cloned);
58+ cloneModel->onCloned (&clone3);
59+ ASSERT_EQ (spy2.count (), 1 );
60+
61+ args = spy2.takeFirst ();
62+ ASSERT_EQ (args.size (), 1 );
63+ cloneModel = args.at (0 ).value <SpriteModel *>();
64+ ASSERT_TRUE (cloneModel);
65+ ASSERT_EQ (cloneModel->parent (), &model);
66+ ASSERT_EQ (cloneModel->sprite (), &clone3);
67+ }
68+
2869TEST (SpriteModelTest, OnCostumeChanged)
2970{
3071 SpriteModel model;
0 commit comments