Example #1
0
        public void NotEqualWhenSecondInstanceIsNull()
        {
            ClassUsingGuidIdentity p1 = new ClassUsingGuidIdentity();
            ClassUsingGuidIdentity p2 = null;

            Assert.IsFalse(p1.Equals(p2));
        }
Example #2
0
        public void EqualWhenTransientIfBothOjectsAreTheSameInstance()
        {
            ClassUsingGuidIdentity p1 = new ClassUsingGuidIdentity();
            ClassUsingGuidIdentity p2 = p1;

            Assert.IsTrue(p1.Equals(p2));
        }
Example #3
0
        public void NotEqualWhenInstancesAreDifferentTypes()
        {
            ClassUsingGuidIdentity p1 = new ClassUsingGuidIdentity();
            int i = 1;

            Assert.IsFalse(p1.Equals(i));
        }
Example #4
0
        public void NotEqualWhenBothInstancesAreTransient()
        {
            ClassUsingGuidIdentity p1 = new ClassUsingGuidIdentity();
            ClassUsingGuidIdentity p2 = new ClassUsingGuidIdentity();

            Assert.IsFalse(p1.Equals(p2));
        }
Example #5
0
        public void PersistedInstanceIsNotTransientWithGuidIdentity()
        {
            ClassUsingGuidIdentity p = new ClassUsingGuidIdentity();

            //use reflection to set the internal ID of the object to 'simulate' persistence
            SetInstanceFieldValue(p, "_persistenceId", Guid.NewGuid());

            Assert.IsFalse(p.IsTransient);
        }
Example #6
0
        public void NotEqualWhenSecondInstanceIsTransient()
        {
            ClassUsingGuidIdentity p1 = new ClassUsingGuidIdentity();
            ClassUsingGuidIdentity p2 = new ClassUsingGuidIdentity();

            SetInstanceFieldValue(p2, "_persistenceId", Guid.NewGuid());

            Assert.IsFalse(p1.Equals(p2));
        }
Example #7
0
        public void OperatorEqualOverloadTest()
        {
            ClassUsingGuidIdentity p1 = new ClassUsingGuidIdentity();
            ClassUsingGuidIdentity p2 = new ClassUsingGuidIdentity();

            Assert.IsFalse(p1.Equals(p2));

            Assert.IsFalse(p1 == p2);
            Assert.IsTrue(p1 != p2);
        }
Example #8
0
        public void HashCodesAreEqualIfIdentitiesAreEqual()
        {
            ClassUsingGuidIdentity p1 = new ClassUsingGuidIdentity();
            ClassUsingGuidIdentity p2 = new ClassUsingGuidIdentity();

            Guid g = Guid.NewGuid();

            SetInstanceFieldValue(p1, "_persistenceId", g);
            SetInstanceFieldValue(p2, "_persistenceId", g);

            Assert.IsTrue(p1.GetHashCode() == p2.GetHashCode());
        }
Example #9
0
        public void EqualWhenInstancesHaveSameIdentityValue()
        {
            ClassUsingGuidIdentity p1 = new ClassUsingGuidIdentity();
            ClassUsingGuidIdentity p2 = new ClassUsingGuidIdentity();

            Guid g = Guid.NewGuid();

            SetInstanceFieldValue(p1, "_persistenceId", g);
            SetInstanceFieldValue(p2, "_persistenceId", g);

            Assert.IsTrue(p1.Equals(p2));
        }
Example #10
0
        public void AllPublicPropertiesAreDeclaredVirtual()
        {
            ClassUsingGuidIdentity p = new ClassUsingGuidIdentity();

            foreach (PropertyInfo prop in p.GetType().BaseType.GetProperties(BindingFlags.Public | BindingFlags.Instance))
            {
                foreach (MethodInfo methodInfo in prop.GetAccessors())
                {
                    //http://msdn.microsoft.com/en-us/library/system.reflection.methodbase.isvirtual.aspx
                    if (!methodInfo.IsVirtual || methodInfo.IsFinal)
                    {
                        Assert.Fail(string.Format("Property {0} must be declared virtual in type {1}", prop.Name, p.GetType().BaseType.ToString()));
                    }
                }
            }
        }
Example #11
0
        public void NewInstanceIsTransient()
        {
            ClassUsingGuidIdentity p = new ClassUsingGuidIdentity();

            Assert.IsTrue(p.IsTransient);
        }