public void Transient_entity_with_domain_signature_should_return_consistent_hashcode()
        {
            var sut = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            Assert.That(sut.GetHashCode(), Is.EqualTo(sut.GetHashCode()));
        }
        public void Transient_entity_with_domain_signature_should_return_consistent_hashcode()
        {
            var obj = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            obj.GetHashCode().Should().Be(obj.GetHashCode());
        }
Beispiel #3
0
        Transient_entity_with_domain_signature_preserves_hashcode_temporarily_when_its_domain_signature_changes()
        {
            var obj = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };
            int initialHash = obj.GetHashCode();

            obj.Age = 2;
            obj.GetHashCode().Should().Be(initialHash);
        }
        public void Two_transient_entities_with_equal_values_of_domain_signature_generate_equal_hashcodes()
        {
            var sut1 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };
            var sut2 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            Assert.That(sut1.GetHashCode(), Is.EqualTo(sut2.GetHashCode()));
        }
        public void Two_persistent_entities_with_equal_domain_signature_and_different_ids_generate_different_hashcodes()
        {
            IEntityWithTypedId <int> sut1 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            }.SetIdTo(1);
            IEntityWithTypedId <int> sut2 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            }.SetIdTo(2);

            Assert.That(sut1.GetHashCode(), Is.Not.EqualTo(sut2.GetHashCode()));
        }
Beispiel #6
0
        public void Two_persistent_entities_with_different_domain_signature_and_equal_ids_generate_equal_hashcodes()
        {
            var sut1 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            }.SetIdTo(1);
            var sut2 = new ObjectWithOneDomainSignatureProperty {
                Age = 2
            }.SetIdTo(1);

            Assert.That(sut1.GetHashCode(), Is.EqualTo(sut2.GetHashCode()));
        }
Beispiel #7
0
        public void TwoTransientEntititesWithEqualValuesOfDomainSignatureGenerateEqualHashcodes()
        {
            var sut1 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };
            var sut2 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            Assert.AreEqual(sut1.GetHashCode(), sut2.GetHashCode());
        }
Beispiel #8
0
        public void Two_persistent_entities_with_equal_domain_signature_and_different_ids_generate_different_hashcodes()
        {
            IEntity <int> obj1 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            }.SetIdTo(1);
            IEntity <int> obj2 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            }.SetIdTo(2);

            obj1.GetHashCode().Should().NotBe(obj2.GetHashCode());
        }
Beispiel #9
0
        public void TwoPersistentEntitiesWithDifferentDomainSignatureAndEqualIdsGenerateEqualHashcodes()
        {
            IDomainObjectWithTypedId <int> sut1 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            }.SetIdTo(1);
            IDomainObjectWithTypedId <int> sut2 = new ObjectWithOneDomainSignatureProperty {
                Age = 2
            }.SetIdTo(1);

            Assert.AreEqual(sut1.GetHashCode(), sut2.GetHashCode());
        }
Beispiel #10
0
        public void Two_transient_entities_with_equal_values_of_domain_signature_generate_equal_hashcodes()
        {
            var obj1 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };
            var obj2 = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            obj1.GetHashCode().Should().Be(obj2.GetHashCode());
        }
        Transient_entity_with_domain_signature_preserves_hashcode_temporarily_when_its_domain_signature_changes()
        {
            var sut = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            int initialHashcode = sut.GetHashCode();

            sut.Age = 2;

            Assert.That(sut.GetHashCode(), Is.EqualTo(initialHashcode));
        }
Beispiel #12
0
        TransientEntityWithDomainSignaturePreservesHashcodeTemporarilyWhenItsDomainSignatureChanges()
        {
            var sut = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            int initialHashcode = sut.GetHashCode();

            sut.Age = 2;

            Assert.AreEqual(sut.GetHashCode(), initialHashcode);
        }
        public void KeepsConsistentHashThroughLifetimeOfTransientObject()
        {
            var object1     = new ObjectWithOneDomainSignatureProperty();
            int initialHash = object1.GetHashCode();

            object1.Age  = 13;
            object1.Name = "Foo";

            Assert.AreEqual(initialHash, object1.GetHashCode());

            object1.Age = 14;
            Assert.AreEqual(initialHash, object1.GetHashCode());
        }
Beispiel #14
0
        public void KeepsConsistentHashThroughLifetimeOfTransientObject()
        {
            var obj         = new ObjectWithOneDomainSignatureProperty();
            int initialHash = obj.GetHashCode();

            obj.Age  = 13;
            obj.Name = "Foo";

            obj.GetHashCode().Should().Be(initialHash);

            obj.Age = 14;
            obj.GetHashCode().Should().Be(initialHash);
        }
Beispiel #15
0
        public void EntityWithDomainSignaturePreservesHashcodeWhenTransitioningFromTransientToPersistent()
        {
            var sut = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            Assert.IsTrue(sut.IsTransient());

            int hashcodeWhenTransient = sut.GetHashCode();

            sut.SetIdTo(1);

            Assert.IsFalse(sut.IsTransient());
            Assert.AreEqual(sut.GetHashCode(), hashcodeWhenTransient);
        }
Beispiel #16
0
        public void Entity_with_domain_signature_preserves_hashcode_when_transitioning_from_transient_to_persistent()
        {
            var obj = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            obj.IsTransient().Should().BeTrue();

            int hashcodeWhenTransient = obj.GetHashCode();

            obj.SetIdTo(1);

            obj.IsTransient().Should().BeFalse();
            obj.GetHashCode().Should().Be(hashcodeWhenTransient);
        }
Beispiel #17
0
        public void KeepsConsistentHashThroughLifetimeOfPersistentObject()
        {
            var object1 = new ObjectWithOneDomainSignatureProperty();

            EntityIdSetter.SetIdOf(object1, 1);
            var initialHash = object1.GetHashCode();

            object1.Age  = 13;
            object1.Name = "Foo";

            Assert.AreEqual(initialHash, object1.GetHashCode());

            object1.Age = 14;
            Assert.AreEqual(initialHash, object1.GetHashCode());
        }
        public void Entity_with_domain_signature_preserves_hashcode_when_transitioning_from_transient_to_persistent()
        {
            var sut = new ObjectWithOneDomainSignatureProperty {
                Age = 1
            };

            Assert.That(sut.IsTransient());

            int hashcodeWhenTransient = sut.GetHashCode();

            sut.SetIdTo(1);

            Assert.That(sut.IsTransient(), Is.False);
            Assert.That(sut.GetHashCode(), Is.EqualTo(hashcodeWhenTransient));
        }
Beispiel #19
0
        public void CanCompareDomainObjectsWithOnlySomePropertiesBeingPartOfDomainSignature()
        {
            var object1 = new ObjectWithOneDomainSignatureProperty();
            var object2 = new ObjectWithOneDomainSignatureProperty();

            Assert.AreEqual(object1, object2);

            object1.Age = 13;
            object2.Age = 13;
            // Name property isn't included in comparison
            object1.Name = "Foo";
            object2.Name = "Bar";
            Assert.AreEqual(object1, object2);

            object1.Age = 14;
            Assert.AreNotEqual(object1, object2);
        }
Beispiel #20
0
        public void CanCompareDomainObjectsWithOnlySomePropertiesBeingPartOfDomainSignature()
        {
            ObjectWithOneDomainSignatureProperty object1 = new ObjectWithOneDomainSignatureProperty();
            ObjectWithOneDomainSignatureProperty object2 = new ObjectWithOneDomainSignatureProperty();

            Assert.That(object1, Is.EqualTo(object2));

            object1.Age = 13;
            object2.Age = 13;
            // Name property isn't included in comparison
            object1.Name = "Foo";
            object2.Name = "Bar";
            Assert.That(object1, Is.EqualTo(object2));

            object1.Age = 14;
            Assert.That(object1, Is.Not.EqualTo(object2));
        }
Beispiel #21
0
        public void CanCompareDomainObjectsWithOnlySomePropertiesBeingPartOfDomainSignature()
        {
            var obj1 = new ObjectWithOneDomainSignatureProperty();
            var obj2 = new ObjectWithOneDomainSignatureProperty();

            obj1.Equals(obj2).Should().BeTrue();

            obj1.Age = 13;
            obj2.Age = 13;

            // Name property isn't included in comparison
            obj1.Name = "Foo";
            obj2.Name = "Bar";
            obj1.Equals(obj2).Should().BeTrue();

            obj1.Age = 14;
            obj1.Equals(obj2).Should().BeFalse();
            obj1.Equals(obj2).Should().BeFalse();
        }