protected static void AssertDaoToListWithId <TIn, TOut> ( IEnumerable <TIn> expected, IEnumerable <TOut> actual, DaoObjectComparer <TIn, TOut> comparer ) where TIn : IdDao where TOut : IdObject { AssertDaoToListWithId( x => x.Id, y => y.Id, expected, actual, comparer ); }
protected static void AssertDaoToListWithId <TIn, TOut>( Func <TIn, Guid> getDaoId, Func <TOut, Guid> getObjectId, IEnumerable <TIn> expected, IEnumerable <TOut> actual, DaoObjectComparer <TIn, TOut> comparer ) where TIn : IDao { Assert.AreEqual(expected.Count(), actual.Count()); var expectedDict = expected.ToDictionary(x => getDaoId(x)); foreach (var a in actual) { var e = expectedDict[getObjectId(a)]; Assert.IsTrue(comparer.Equals(e, a)); } }