public async Task AFullAnimationShouldReturnToOriginalValues()
        {
            var animation = new RubberBandAnimation();
            var view      = new MockView();

            await animation.Animate(view);

            Assert.IsTrue(view.ValuesSet.ContainsKey(nameof(View.ScaleX)));
            Assert.AreEqual(1, view.ValuesSet[nameof(View.ScaleX)].Last());

            Assert.IsTrue(view.ValuesSet.ContainsKey(nameof(View.ScaleY)));
            Assert.AreEqual(1, view.ValuesSet[nameof(View.ScaleY)].Last());
        }
        public async Task AnAbortedAnimationShouldNotReturnToOriginalValues()
        {
            var animation = new RubberBandAnimation();
            var view      = new MockView();
            var cancellationTokenSource = new CancellationTokenSource(100);

            await animation.Animate(cancellationTokenSource.Token, view);

            Assert.IsTrue(view.ValuesSet.ContainsKey(nameof(View.ScaleX)));
            Assert.AreNotEqual(1, view.ValuesSet[nameof(View.ScaleX)].Last());

            Assert.IsTrue(view.ValuesSet.ContainsKey(nameof(View.ScaleY)));
            Assert.AreNotEqual(1, view.ValuesSet[nameof(View.ScaleY)].Last());
        }