Beispiel #1
0
        public void Collection_Function_Compare_TwoCollections_ExactMatch_Valid()
        {
            var expectedResults = new CollectionCompareResults <int>(missingSorceRecords: new List <int>(), missingSecondaryRecords: new List <int>());
            var actualResults   = TestCollectionData.ORDER_OF_NUMBERS_ONE_THRU_TEN.Compare(TestCollectionData.ORDER_OF_NUMBERS_ONE_THRU_TEN);

            CollectionAssert.AreEqual(expectedResults.RecordsMissingInSourceCollection.ToList(), actualResults.RecordsMissingInSourceCollection.ToList());
            CollectionAssert.AreEqual(expectedResults.RecordsMissingInSecondaryCollection.ToList(), actualResults.RecordsMissingInSecondaryCollection.ToList());
        }
Beispiel #2
0
        public void Collection_Function_Compare_TwoCollections_FirstCollectionMissing_Six_Thru_Ten_SecondCollectionMissing_One_Thru_Five_Valid()
        {
            var expectedResults = new CollectionCompareResults <int>(missingSorceRecords: TestCollectionData.ORDER_OF_NUMBERS_SIX_THRU_TEN, missingSecondaryRecords: TestCollectionData.ORDER_OF_NUMBERS_ONE_THRU_FIVE);
            var actualResults   = TestCollectionData.ORDER_OF_NUMBERS_ONE_THRU_FIVE.Compare(TestCollectionData.ORDER_OF_NUMBERS_SIX_THRU_TEN);

            CollectionAssert.AreEqual(expectedResults.RecordsMissingInSourceCollection.ToList(), actualResults.RecordsMissingInSourceCollection.ToList());
            CollectionAssert.AreEqual(expectedResults.RecordsMissingInSecondaryCollection.ToList(), actualResults.RecordsMissingInSecondaryCollection.ToList());
        }
Beispiel #3
0
        public void Collection_Function_Compare_Empty_Second_Collection_Correct_EnumerableCompareResults_Valid()
        {
            var expectedResults = new CollectionCompareResults <int>(missingSorceRecords: new List <int>(),
                                                                     missingSecondaryRecords: TestCollectionData.ORDER_OF_NUMBERS_ONE_THRU_TEN);
            var actualResults = TestCollectionData.ORDER_OF_NUMBERS_ONE_THRU_TEN.Compare(TestCollectionData.EMPTY_LIST);

            CollectionAssert.AreEqual(expectedResults.RecordsMissingInSourceCollection.ToList(), actualResults.RecordsMissingInSourceCollection.ToList());
            CollectionAssert.AreEqual(expectedResults.RecordsMissingInSecondaryCollection.ToList(), actualResults.RecordsMissingInSecondaryCollection.ToList());
        }
        /// <summary>
        ///     Compares two collections of the same type
        /// </summary>
        /// <typeparam name="TSource">Type of Collection</typeparam>
        /// <param name="source">Source Collection</param>
        /// <param name="secondaryCollection">Secondary Collection</param>
        /// <returns type="CollectionCompareResults">Provides list of what is missing in each collection, respectively</returns>
        public static CollectionCompareResults <TSource> Compare <TSource>(this IEnumerable <TSource> source, IEnumerable <TSource> secondaryCollection)
        {
            if (source.IsNull())
            {
                throw new SourceNullException(nameof(source));
            }

            if (secondaryCollection.IsNull())
            {
                throw new SourceNullException(nameof(secondaryCollection));
            }

            var results = new CollectionCompareResults <TSource>(
                secondaryCollection.Except(source).ToList(),
                source.Except(secondaryCollection).ToList());

            return(results);
        }