diff options
Diffstat (limited to 'Xamarin.Forms.Core.UnitTests/AnimatableKeyTests.cs')
-rw-r--r-- | Xamarin.Forms.Core.UnitTests/AnimatableKeyTests.cs | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core.UnitTests/AnimatableKeyTests.cs b/Xamarin.Forms.Core.UnitTests/AnimatableKeyTests.cs new file mode 100644 index 00000000..385ab1fc --- /dev/null +++ b/Xamarin.Forms.Core.UnitTests/AnimatableKeyTests.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using NUnit.Framework; + +namespace Xamarin.Forms.Core.UnitTests +{ + [TestFixture] + public class AnimatableKeyTests + { + class FakeAnimatable : IAnimatable + { + public void BatchBegin () + { + + } + + public void BatchCommit () + { + + } + } + + [Test] + public void KeysWithDifferentHandlesAreNotEqual () + { + var animatable = new FakeAnimatable(); + + var key1 = new AnimatableKey(animatable, "handle1"); + var key2 = new AnimatableKey(animatable, "handle2"); + + Assert.AreNotEqual (key1, key2); + } + + [Test] + public void KeysWithDifferentAnimatablesAreNotEqual () + { + var animatable1 = new FakeAnimatable(); + var animatable2 = new FakeAnimatable(); + + var key1 = new AnimatableKey(animatable1, "handle"); + var key2 = new AnimatableKey(animatable2, "handle"); + + Assert.AreNotEqual (key1, key2); + } + + [Test] + public void KeysWithSameAnimatableAndHandleAreEqual () + { + var animatable = new FakeAnimatable(); + + var key1 = new AnimatableKey(animatable, "handle"); + var key2 = new AnimatableKey(animatable, "handle"); + + Assert.AreEqual (key1, key2); + } + + [Test] + public void ThrowsWhenKeysWithSameAnimatableAdded () + { + var animatable = new FakeAnimatable(); + + var key1 = new AnimatableKey(animatable, "handle"); + var key2 = new AnimatableKey(animatable, "handle"); + + var dict = new Dictionary<AnimatableKey, object> { { key1, new object () } }; + + Assert.Throws<ArgumentException> (() => { + dict.Add (key2, new object ()); + }); + } + } +}
\ No newline at end of file |