public void SkipOne_ExhaustiveTest()
        {
            var tween1FinishCallbacks   = 0;
            var tween2FinishCallbacks   = 0;
            var sequenceFinishCallbacks = 0;
            var tween1   = new TweenSleep(new TimeSpan(100), () => tween1FinishCallbacks++);
            var tween2   = new TweenSleep(new TimeSpan(100), () => tween2FinishCallbacks++);
            var sequence = new TweenSequence(() => sequenceFinishCallbacks++);

            sequence.Add(tween1);
            sequence.Add(tween2);

            sequence.SkipOne();
            Assert.Equal(1, sequence.TweenCount);
            Assert.Equal(0, tween1FinishCallbacks);
            Assert.Equal(0, tween2FinishCallbacks);
            Assert.Equal(0, sequenceFinishCallbacks);
            Assert.True(tween1.IsFinished);
            Assert.False(tween2.IsFinished);
            Assert.False(sequence.IsFinished);

            sequence.SkipOne();
            Assert.Equal(0, sequence.TweenCount);
            Assert.Equal(0, tween1FinishCallbacks);
            Assert.Equal(0, tween2FinishCallbacks);
            Assert.Equal(1, sequenceFinishCallbacks);
            Assert.True(tween1.IsFinished);
            Assert.True(tween2.IsFinished);
            Assert.True(sequence.IsFinished);
        }
        public void ShouldAddTweensToSequence_adding()
        {
            var tween1   = new TweenSleep(new TimeSpan(100));
            var tween2   = new TweenSleep(new TimeSpan(100));
            var sequence = new TweenSequence();

            sequence.Add(tween1);
            sequence.Add(tween2);

            Assert.Contains(tween1, sequence.Tweens);
            Assert.Contains(tween2, sequence.Tweens);
        }
        public void ShouldSkipAllTheTweens()
        {
            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.Skip();

            Assert.True(tween1.IsFinished);
            Assert.True(tween2.IsFinished);
            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);
        }
        public void ShouldThrowExceptionWhenAddingNullTween_adding()
        {
            var tween    = new TweenSleep(new TimeSpan(100));
            var sequence = new TweenSequence();

            Assert.Throws <ArgumentNullException>(() => sequence.Add(null));
        }
예제 #7
0
        public override TweenBase CreateTween(ITweenAssetInjector injector)
        {
            var tween = new TweenSequence();

            foreach (var item in m_sequence)
            {
                tween.Add(item.CreateTween(injector));
            }
            return(tween);
        }
        public void ShouldFinishAllTheTweens()
        {
            var tween1FinishCallbacks = 0;
            var tween2FinishCallbacks = 0;
            var tween1   = new TweenSleep(new TimeSpan(100), () => tween1FinishCallbacks++);
            var tween2   = new TweenSleep(new TimeSpan(100), () => tween2FinishCallbacks++);
            var sequence = new TweenSequence();

            sequence.Add(tween1);
            sequence.Add(tween2);

            sequence.Finish();

            Assert.Equal(1, tween1FinishCallbacks);
            Assert.Equal(1, tween2FinishCallbacks);
            Assert.True(tween1.IsFinished);
            Assert.True(tween2.IsFinished);
            Assert.True(sequence.IsFinished);
        }
        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);
        }