public void ShouldNotEqualEffectWithDifferentColorUsingNotEqualOp()
        {
            var a = new StaticKeyboardEffect(Color.Red);
            var b = new StaticKeyboardEffect(Color.Blue);

            Assert.True(a != b);
        }
        public void ShouldNotEqualNull()
        {
            var effect = new StaticKeyboardEffect(Color.Red);

            Assert.AreNotEqual(effect, null);
            Assert.False(effect.Equals(null));
        }
        public void ShouldNotEqualEffectWithDifferentColor()
        {
            var a = new StaticKeyboardEffect(Color.Red);
            var b = new StaticKeyboardEffect(Color.Blue);

            Assert.AreNotEqual(a, b);
        }
        public void ShouldEqualEffectWithSameColorUsingNotEqualOp()
        {
            var a = new StaticKeyboardEffect(Color.Red);
            var b = new StaticKeyboardEffect(Color.Red);

            Assert.False(a != b);
        }
        public void ShouldEqualEffectWithSameColor()
        {
            var a = new StaticKeyboardEffect(Color.Red);
            var b = new StaticKeyboardEffect(Color.Red);

            Assert.AreEqual(a, b);
        }
        public void ShouldNotEqualEffectWithDifferentColorCastAsObject()
        {
            var effect = new StaticKeyboardEffect(Color.Red);
            var obj    = new StaticKeyboardEffect(Color.Blue) as object;

            Assert.False(effect.Equals(obj));
        }
        public void ShouldEqualEffectWithSameColorCastAsObject()
        {
            var effect = new StaticKeyboardEffect(Color.Red);
            var obj    = new StaticKeyboardEffect(Color.Red) as object;

            Assert.True(effect.Equals(obj));
        }
        public void ShouldNotEqualArbitraryObject()
        {
            var effect = new StaticKeyboardEffect(Color.Red);
            var obj    = new object();

            Assert.False(effect.Equals(obj));
        }
        public void ShouldHaveSameHashcodeAsColor()
        {
            var color    = Color.Red;
            var hashcode = color.GetHashCode();
            var effect   = new StaticKeyboardEffect(color);

            Assert.AreEqual(hashcode, effect.GetHashCode());
        }