public void ShouldTriggerFinishCallbackOnlyWhenLastTweenFinishes() { var sequenceFinishCallbackCount = 0; var tween1 = new TweenSleep(new TimeSpan(100)); var tween2 = new TweenSleep(new TimeSpan(100)); var sequence = new TweenSequence(() => sequenceFinishCallbackCount++); sequence.Add(tween1); sequence.Add(tween2); sequence.Advance(new TimeSpan(50)); Assert.Equal(0, sequenceFinishCallbackCount); sequence.Advance(new TimeSpan(50)); Assert.Equal(0, sequenceFinishCallbackCount); sequence.Advance(new TimeSpan(50)); Assert.Equal(0, sequenceFinishCallbackCount); sequence.Advance(new TimeSpan(50)); Assert.Equal(1, sequenceFinishCallbackCount); sequence.Advance(new TimeSpan(50)); Assert.Equal(1, sequenceFinishCallbackCount); Assert.True(sequence.IsFinished); }
public void ShouldAdvanceTheSecondTweenByWhatIsLeft() { var tween1 = new TweenSleep(new TimeSpan(100)); var tween2 = new TweenSleep(new TimeSpan(100)); var sequence = new TweenSequence(); sequence.Add(tween1); sequence.Add(tween2); sequence.Advance(new TimeSpan(150)); Assert.Equal(0, tween1.RemainingDuration.Ticks); Assert.Equal(50, tween2.RemainingDuration.Ticks); Assert.True(tween1.IsFinished); Assert.False(tween2.IsFinished); }
public void ShouldAdvanceTheFirstTween() { var tween1 = new TweenSleep(new TimeSpan(100)); var tween2 = new TweenSleep(new TimeSpan(100)); var sequence = new TweenSequence(); sequence.Add(tween1); sequence.Add(tween2); sequence.Advance(new TimeSpan(50)); Assert.Equal(50, tween1.RemainingDuration.Ticks); Assert.Equal(100, tween2.RemainingDuration.Ticks); Assert.False(tween1.IsFinished); Assert.False(tween2.IsFinished); }