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()); }
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()); }
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); }