public void TestStartGroupWithRunningChild() { var group = new QParallelAnimationGroup(); var anim1 = new TestAnimation(); anim1.StartValue = new QVariant(0); anim1.EndValue = new QVariant(100); anim1.SetDuration(200); var anim2 = new TestAnimation(); anim2.StartValue = new QVariant(0); anim2.EndValue = new QVariant(100); anim2.SetDuration(200); var spy1 = 0; anim1.StateChanged += (arg1, arg2) => { spy1++; }; var spy2 = 0; anim2.StateChanged += (arg1, arg2) => { spy2++; }; Assert.AreEqual(0, spy1); Assert.AreEqual(0, spy2); Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state); Assert.AreEqual(QAbstractAnimation.State.Stopped, anim1.state); Assert.AreEqual(QAbstractAnimation.State.Stopped, anim2.state); group.AddAnimation(anim1); group.AddAnimation(anim2); anim1.Start(); anim2.Start(); anim2.Pause(); Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state); Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state); Assert.AreEqual(QAbstractAnimation.State.Paused, anim2.state); group.Start(); Assert.AreEqual(3, spy1); Assert.AreEqual(4, spy2); Assert.AreEqual(QAbstractAnimation.State.Running, group.state); Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state); Assert.AreEqual(QAbstractAnimation.State.Running, anim2.state); }
public void TestUpdateChildrenWithRunningGroup() { var group = new QParallelAnimationGroup(); var anim = new TestAnimation(); anim.StartValue = new QVariant(0); anim.EndValue = new QVariant(100); anim.SetDuration(200); var groupStateChangedSpy = 0; group.StateChanged += (arg1, arg2) => { groupStateChangedSpy++; }; var childStateChangedSpy = 0; anim.StateChanged += (arg1, arg2) => { childStateChangedSpy++; }; Assert.AreEqual(0, groupStateChangedSpy); Assert.AreEqual(0, childStateChangedSpy); Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state); Assert.AreEqual(QAbstractAnimation.State.Stopped, anim.state); group.AddAnimation(anim); group.Start(); Assert.AreEqual(QAbstractAnimation.State.Running, group.state); Assert.AreEqual(QAbstractAnimation.State.Running, anim.state); Assert.AreEqual(1, groupStateChangedSpy); Assert.AreEqual(1, childStateChangedSpy); anim.Start(); Assert.AreEqual(1, groupStateChangedSpy); Assert.AreEqual(1, childStateChangedSpy); anim.Pause(); Assert.AreEqual(QAbstractAnimation.State.Running, group.state); Assert.AreEqual(QAbstractAnimation.State.Paused, anim.state); // in the animation stops directly, the group will still be running anim.Stop(); Assert.AreEqual(QAbstractAnimation.State.Running, group.state); Assert.AreEqual(QAbstractAnimation.State.Stopped, anim.state); }
public void TestStopGroupWithRunningChild() { // test if children can be activated when their group is stopped var group = new QParallelAnimationGroup(); var anim1 = new TestAnimation(); anim1.StartValue = new QVariant(0); anim1.EndValue = new QVariant(100); anim1.SetDuration(200); var anim2 = new TestAnimation(); anim2.StartValue = new QVariant(0); anim2.EndValue = new QVariant(100); anim2.SetDuration(200); Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state); Assert.AreEqual(QAbstractAnimation.State.Stopped, anim1.state); Assert.AreEqual(QAbstractAnimation.State.Stopped, anim2.state); group.AddAnimation(anim1); group.AddAnimation(anim2); anim1.Start(); anim2.Start(); anim2.Pause(); Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state); Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state); Assert.AreEqual(QAbstractAnimation.State.Paused, anim2.state); group.Stop(); Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state); Assert.AreEqual(QAbstractAnimation.State.Running, anim1.state); Assert.AreEqual(QAbstractAnimation.State.Paused, anim2.state); anim1.Stop(); anim2.Stop(); Assert.AreEqual(QAbstractAnimation.State.Stopped, group.state); Assert.AreEqual(QAbstractAnimation.State.Stopped, anim1.state); Assert.AreEqual(QAbstractAnimation.State.Stopped, anim2.state); }