Beispiel #1
0
        public void Equals_ReturnsTrue_ForNullInstances()
        {
            // Arrange
            var comparer = new DefaultObjectComparer <Person>();

            // Act
            bool equals = comparer.Equals(null, null);

            // Assert
            Assert.True(equals);
        }
Beispiel #2
0
        public void Compare_ReturnsZero_NullInstances()
        {
            // Arrange
            var comparer = new DefaultObjectComparer <Person>();

            // Act
            var result = comparer.Compare(null, null);

            // Assert
            Assert.Equal(0, result);
        }
Beispiel #3
0
        public void Equals_ReturnsTrue_ForSameInstance()
        {
            // Arrange
            var person   = new Person();
            var comparer = new DefaultObjectComparer <Person>();

            // Act
            bool equals = comparer.Equals(person, person);

            // Assert
            Assert.True(equals);
        }
Beispiel #4
0
        public void Compare_ReturnsZero_ForSameInstance()
        {
            // Arrange
            var person   = new Person();
            var comparer = new DefaultObjectComparer <Person>();

            // Act
            var result = comparer.Compare(person, person);

            // Assert
            Assert.Equal(0, result);
        }
Beispiel #5
0
        public void Constructor_SetsProperties()
        {
            // Arrange
            var person   = new Person();
            var comparer = new DefaultObjectComparer <Person>();

            // Act

            // Assert
            Assert.NotEqual(0, comparer.HighValue);
            Assert.NotEqual(0, comparer.LowValue);
        }
Beispiel #6
0
        public void Equals_ReturnsTrue_WhenNoPropertySelectorsProvided()
        {
            // Arrange
            var person0  = new Person();
            var person1  = new Person();
            var comparer = new DefaultObjectComparer <Person>();

            // Act
            bool equals = comparer.Equals(person0, person1);

            // Assert
            Assert.True(equals);
        }
Beispiel #7
0
        public void Compare_ReturnsZero_WhenNoPropertySelectorsProvided()
        {
            // Arrange
            var person0  = new Person();
            var person1  = new Person();
            var comparer = new DefaultObjectComparer <Person>();

            // Act
            var result = comparer.Compare(person0, person1);

            // Assert
            Assert.Equal(0, result);
        }
Beispiel #8
0
        public void Equals_ReturnsFalse_ForNullInstance()
        {
            // Arrange
            var person   = new Person();
            var comparer = new DefaultObjectComparer <Person>();

            // Act
            bool equals0 = comparer.Equals(person, null);
            bool equals1 = comparer.Equals(null, person);

            // Assert
            Assert.False(equals0);
            Assert.False(equals1);
        }
Beispiel #9
0
        public void Compare_OrdersNullInstancesFirst()
        {
            // Arrange
            var person = new Person();
            // MA - Provide at least 1 property selector.
            var comparer = new DefaultObjectComparer <Person>(p => p.Forename);

            // Act
            var result0 = comparer.Compare(null, person);
            var result1 = comparer.Compare(person, null);

            // Assert
            Assert.Equal(-1, result0);
            Assert.Equal(1, result1);
        }
Beispiel #10
0
        public void Compare_OrdersUsingPropertySelectors()
        {
            // Arrange
            var person0 = new Person
            {
                Forename    = "Matt",
                Surname     = "Abbott",
                DateOfBirth = new DateTime(1984, 3, 11)
            };
            var person1 = new Person()
            {
                Forename    = "Abbott",
                Surname     = "Matt",
                DateOfBirth = new DateTime(1984, 11, 3)
            };
            var person2 = new Person
            {
                Forename    = "Matthew",
                Surname     = "Abbott",
                DateOfBirth = new DateTime(1984, 3, 11)
            };
            var comparer0 = new DefaultObjectComparer <Person>(
                p => p.Forename,
                p => p.Surname);
            var comparer1 = new DefaultObjectComparer <Person>(
                p => p.Surname,
                p => p.Forename);

            // Act
            // MA - Matt > Abbott
            int result0 = comparer0.Compare(person0, person1);
            // MA - Matt < Matthew
            int result1 = comparer0.Compare(person0, person2);
            // MA - Abbott < Matt
            int result2 = comparer1.Compare(person0, person1);
            // MA - Abbott = Abbott, Matt < Matthew
            int result3 = comparer0.Compare(person0, person2);

            // Assert
            Assert.True(result0 > 0);
            Assert.True(result1 < 0);
            Assert.True(result2 < 0);
            Assert.True(result3 < 0);
        }
Beispiel #11
0
        public void Equals_UsesPropertySelectors()
        {
            // Arrange
            var person0 = new Person()
            {
                Forename    = "Matt",
                Surname     = "Abbott",
                DateOfBirth = new DateTime(1984, 3, 11)
            };
            var person1 = new Person()
            {
                Forename    = "Matt",
                Surname     = "Abbott",
                DateOfBirth = new DateTime(1984, 3, 11)
            };
            var person2 = new Person()
            {
                Forename    = "Matt",
                Surname     = "Abbott2",
                DateOfBirth = new DateTime(1984, 3, 11)
            };
            var comparer0 = new DefaultObjectComparer <Person>
                            (
                p => p.Forename,
                p => p.Surname,
                p => p.DateOfBirth
                            );
            var comparer1 = new DefaultObjectComparer <Person>
                            (
                p => p.Surname
                            );

            // Act
            bool equals0 = comparer0.Equals(person0, person1);
            bool equals1 = comparer1.Equals(person0, person1);
            bool equals2 = comparer1.Equals(person0, person2);

            // Assert
            Assert.True(equals0);
            Assert.True(equals1);
            Assert.False(equals2);
        }