public void NonNullKeySelectorComparerThrowsWhenFirstItemIsNullAndSecondItemIsNull()
        {
            var comparer = new NonNullKeySelectorComparer <KeySelectorTestItem, int>(i => i.Id);

            KeySelectorTestItem first  = null;
            KeySelectorTestItem second = null;

            Assert.Throws <ArgumentNullException>(() => comparer.Compare(first, second));
        }
        public void KeySelectorComparerReturnsZeroWhenFirstItemIsNullAndSecondItemIsNull()
        {
            var comparer = new KeySelectorComparer <KeySelectorTestItem, int>(i => i.Id);

            KeySelectorTestItem first  = null;
            KeySelectorTestItem second = null;

            var result = comparer.Compare(first, second);

            Assert.AreEqual(0, result);
        }
        public void KeySelectorComparerRetunsNegativeOneWhenFirstItemIsNullAndSecondItemIsNot()
        {
            var comparer = new KeySelectorComparer <KeySelectorTestItem, int>(i => i.Id);

            KeySelectorTestItem first  = null;
            KeySelectorTestItem second = new KeySelectorTestItem {
                Id = 1
            };

            var result = comparer.Compare(first, second);

            Assert.AreEqual(-1, result);
        }
        public void NonNullKeySelectorComparerReturnsZeroWhenFirstKeyIsEqualToSecondKey()
        {
            var comparer = new NonNullKeySelectorComparer <KeySelectorTestItem, int>(i => i.Id);

            var first = new KeySelectorTestItem {
                Id = 1
            };
            var second = new KeySelectorTestItem {
                Id = 1
            };

            var result = comparer.Compare(first, second);

            Assert.AreEqual(0, result);
        }
        public void NonNullKeySelectorComparerReturnsNegativeOneWhenFirstKeyIsLessThanSecondKey()
        {
            var comparer = new NonNullKeySelectorComparer <KeySelectorTestItem, int>(i => i.Id);

            var first = new KeySelectorTestItem {
                Id = 1
            };
            var second = new KeySelectorTestItem {
                Id = 2
            };

            var result = comparer.Compare(first, second);

            Assert.AreEqual(-1, result);
        }
        public void KeySelectorComparerReturnsPositiveOneWhenFirstKeyIsGreaterThanSecondKey()
        {
            var comparer = new KeySelectorComparer <KeySelectorTestItem, int>(i => i.Id);

            var first = new KeySelectorTestItem {
                Id = 2
            };
            var second = new KeySelectorTestItem {
                Id = 1
            };

            var result = comparer.Compare(first, second);

            Assert.AreEqual(1, result);
        }