public void SetEntityThenKey_KeyMatchesEntityDifferentCase_CaseInsensitiveComparer()
        {
            var s   = new EntityKeySynchronizer <Person, string>(p => p.Name, new CaseInsensitiveKeyComparer());
            var bob = new Person {
                Name = "Bob"
            };

            s.Entity = bob;
            s.Key    = "bob";

            Assert.AreSame(bob, s.Entity);
            Assert.AreEqual("Bob", s.Key);
        }
        public void SetEntityThenKey_KeyDoesNotMatchEntity()
        {
            var s   = new EntityKeySynchronizer <Person, string>(p => p.Name);
            var bob = new Person {
                Name = "Bob"
            };

            s.Entity = bob;
            s.Key    = "Robert";

            Assert.AreEqual("Robert", s.Key);
            Assert.IsNull(s.Entity);
        }
        public void SetEntityThenKey_KeyMatchesEntityDifferentCase_DefaultComparer()
        {
            var s   = new EntityKeySynchronizer <Person, string>(p => p.Name);
            var bob = new Person {
                Name = "Bob"
            };

            s.Entity = bob;
            s.Key    = "bob";

            Assert.AreEqual("bob", s.Key);
            Assert.IsNull(s.Entity);
        }
        public void SetEntityThenKey_KeyMatchesEntity()
        {
            var s   = new EntityKeySynchronizer <Person, string>(p => p.Name);
            var bob = new Person {
                Name = "Bob"
            };

            s.Entity = bob;
            s.Key    = "Bob";

            Assert.AreSame(bob, s.Entity);
            Assert.AreEqual("Bob", s.Key);
        }