Beispiel #1
0
        public void TestRepeat()
        {
            var initializer = new GTweenPropertyInitializer();

            initializer.AutoPlay       = false;
            initializer.DispatchEvents = true;
            initializer.RepeatCount    = 2;

            var tween = new GTween(_target, TweenDuration, _values, initializer);

            var counter = 0;
            var reset   = new AutoResetEvent(false);
            EventHandler <GTweenEventArgs> handler = (s, e) =>
            {
                counter++;

                if (tween.RepeatCount == counter)
                {
                    reset.Set();
                }
            };

            tween.Completed += handler;
            tween.Paused     = false;
            reset.WaitOne(WaitDuration << 1);
            tween.Completed -= handler;

            Assert.AreEqual(tween.RepeatCount, counter);
        }
Beispiel #2
0
        public void TestDeleteValue()
        {
            var initializer = new GTweenPropertyInitializer()
            {
                AutoPlay       = false,
                DispatchEvents = true
            };
            var tween = new GTween(_target, TweenDuration, _values, initializer);

            var reset = new AutoResetEvent(false);
            EventHandler <GTweenEventArgs> handler = (s, e) =>
            {
                tween.DeleteValue("Value");
                reset.Set();
            };

            tween.Changed += handler;
            tween.Paused   = false;
            reset.WaitOne(WaitDuration);
            tween.Changed -= handler;

            Assert.AreEqual(false, tween.Paused);
            Assert.IsTrue(_target.Value < _values["Value"]);
            Assert.IsTrue(_target.Value > 0);
        }
Beispiel #3
0
        public void TestReflect()
        {
            var initializer = new GTweenPropertyInitializer();

            initializer.AutoPlay       = false;
            initializer.DispatchEvents = true;
            initializer.Reflect        = true;
            initializer.RepeatCount    = 2;

            var tween       = new GTween(_target, TweenDuration, _values, initializer);
            var initValue   = _target.Value;
            var midAchieved = false;
            var endAchieved = false;

            var reset = new AutoResetEvent(false);
            EventHandler <GTweenEventArgs> handler = (s, e) =>
            {
                if (Math.Ceiling(_target.Value) == _values["Value"])
                {
                    midAchieved = true;
                }

                endAchieved = midAchieved && _target.Value == initValue;
            };

            tween.Changed += handler;
            tween.Paused   = false;
            reset.WaitOne(WaitDuration << 1);
            tween.Changed -= handler;

            Assert.IsTrue(midAchieved);
            Assert.IsTrue(endAchieved);
        }
Beispiel #4
0
        public void TestDelay()
        {
            var initializer = new GTweenPropertyInitializer();

            initializer.AutoPlay       = false;
            initializer.DispatchEvents = true;
            initializer.Delay          = TweenDuration;

            var tween = new GTween(_target, TweenDuration, _values, initializer);

            var reset = new AutoResetEvent(false);
            var timer = new Stopwatch();
            EventHandler <GTweenEventArgs> handler = (s, e) =>
            {
                timer.Stop();
                reset.Set();
            };

            tween.Initialized += handler;
            timer.Start();
            tween.Paused = false;
            reset.WaitOne(WaitDuration);
            tween.Initialized -= handler;

            Assert.IsTrue(timer.ElapsedMilliseconds >= TweenDuration);
        }
Beispiel #5
0
        public void TestDataAfterInstantiation()
        {
            var initData = $"Store for {nameof(GTweenTests)} at initialization";
            var data     = $"Store for {nameof(GTweenTests)} after instantiation";

            var initializer = new GTweenPropertyInitializer()
            {
                AutoPlay       = true,
                Data           = initData,
                DispatchEvents = true
            };
            var tween = new GTween(_target, TweenDuration, _values, initializer);

            tween.Data = data;

            var reset = new AutoResetEvent(false);
            EventHandler <GTweenEventArgs> handler = (s, e) =>
            {
                reset.Set();
            };

            tween.Completed += handler;
            reset.WaitOne(WaitDuration);
            tween.Completed -= handler;

            Assert.AreEqual(data, tween.Data);
        }
        private void start_Click(object sender, EventArgs e)
        {
            _graphics.FillRectangle(Brushes.Black, 0, 0, _maxWidth, _maxHeight);

            var desiredCount = (int)instanceCounter.Value;

            _counter = new CountdownEvent(desiredCount);

            _tweens         = new GTween[desiredCount];
            GTween.PauseAll = true;
            for (var i = 0; i < desiredCount; i++)
            {
                var initializer = new GTweenPropertyInitializer()
                {
                    AutoPlay       = false,
                    DispatchEvents = true,
                    Data           = new Point(0, i * 5)
                };

                var target = new Point(0, i * 5);
                var values = new Dictionary <string, double>()
                {
                    { "Y", _maxHeight }
                };
                var tween = new GTween(target, 5, values, initializer);
                tween.Ease       = Sine.EaseInOut;
                tween.Completed += TweenCompleted;
                tween.Paused     = false;
                _tweens[i]       = tween;
            }
            GTween.PauseAll = false;

            _refresh.Enabled = true;
        }
Beispiel #7
0
        public void TestAutoPlayOff()
        {
            var initializer = new GTweenPropertyInitializer()
            {
                AutoPlay = false
            };
            var tween = new GTween(_target, TweenDuration, _values, initializer);
            var reset = new AutoResetEvent(false);
            EventHandler <GTweenEventArgs> handler = (s, e) =>
            {
                reset.Set();
            };

            tween.Changed += handler;
            reset.WaitOne(WaitDuration);
            tween.Changed -= handler;

            Assert.AreEqual(false, tween.AutoPlay);
            Assert.AreEqual(0d, tween.Position);
            Assert.AreEqual(0d, _target.Value);
        }
Beispiel #8
0
        public void TestAutoPlayOn()
        {
            var initializer = new GTweenPropertyInitializer()
            {
                AutoPlay       = true,
                DispatchEvents = true
            };
            var tween = new GTween(_target, TweenDuration, _values, initializer);
            var reset = new AutoResetEvent(false);
            EventHandler <GTweenEventArgs> handler = (s, e) =>
            {
                reset.Set();
            };

            tween.Completed += handler;
            reset.WaitOne(WaitDuration);
            tween.Completed -= handler;

            Assert.AreEqual(true, tween.AutoPlay);
            Assert.IsTrue(tween.Position >= TweenDuration);
            Assert.AreEqual(_values["Value"], _target.Value);
        }
Beispiel #9
0
        public void TestNextTween()
        {
            var initializer = new GTweenPropertyInitializer();

            initializer.AutoPlay       = false;
            initializer.DispatchEvents = false;

            var secondValues = new Dictionary <string, double>()
            {
                { "Value", 100 }
            };

            var secondTween = new GTween(_target, TweenDuration, secondValues, initializer);

            secondTween.DispatchEvents = true;

            initializer.DispatchEvents = false;

            var firstTween = new GTween(_target, TweenDuration, _values, initializer);

            firstTween.NextTween = secondTween;

            var eventFired = false;
            var reset      = new AutoResetEvent(false);
            EventHandler <GTweenEventArgs> handler = (s, e) =>
            {
                eventFired = true;
                reset.Set();
            };

            secondTween.Completed += handler;
            firstTween.Paused      = false;
            reset.WaitOne(WaitDuration << 1);
            secondTween.Completed -= handler;

            Assert.IsTrue(eventFired);
            Assert.AreEqual(secondValues["Value"], _target.Value);
        }
Beispiel #10
0
        public void TestChanged()
        {
            var initializer = new GTweenPropertyInitializer()
            {
                AutoPlay       = true,
                DispatchEvents = true
            };
            var tween = new GTween(_target, TweenDuration, _values, initializer);

            var eventFired = false;
            var reset      = new AutoResetEvent(false);
            EventHandler <GTweenEventArgs> handler = (s, e) =>
            {
                eventFired = true;
                reset.Set();
            };

            tween.Changed += handler;
            reset.WaitOne(WaitDuration);
            tween.Changed -= handler;

            Assert.IsTrue(eventFired);
        }