private static ComparisonMismatch VerifyTableToObject(object obj, Func <Type, IList <MemberWrapper> > getMembers, Func <object, MemberWrapper, object> getMemberValue, Func <string, string, bool> compareMethod) { var comparison = new ComparisonMismatch(); foreach (var row in Rows) { foreach (var header in Headers) { var foundMember = getMembers(obj.GetType()).FirstOrDefault(m => m.Name == header); if (foundMember == null) { if (!_ignoreMissingMembers) { comparison.Add(string.Format("Missing member '{0}'", header)); } // else do nothing } else { comparison.Compare(row[header], getMemberValue(obj, foundMember).ToString(), compareMethod, "VerifyTableToObject"); } } } return(comparison); }
private static ComparisonMismatch VerifyObjectToTable(object obj, Func <Type, IList <MemberWrapper> > getMembers, Func <object, MemberWrapper, object> getMemberValue, Func <string, string, bool> compareMethod) { var members = getMembers(obj.GetType()); var comparison = new ComparisonMismatch(); foreach (var row in Rows) { foreach (var member in members) { comparison.Compare(getMemberValue(obj, member).ToString(), row[member.Name], compareMethod, "VerifyObjectToTable"); } } return(comparison); }
private static ComparisonMismatch CompareMembersToMembers(object objSource, object objDestination, Func <Type, IList <MemberWrapper> > getSourceMembers, Func <Type, IList <MemberWrapper> > getDestinationMembers, Func <object, MemberWrapper, object> getSourceMemberValue, Func <object, MemberWrapper, object> getDestinationMemberValue, Func <string, string, bool> compareMethod) { var comparison = new ComparisonMismatch(); foreach (var member in getSourceMembers(objSource.GetType())) { var foundMember = getDestinationMembers(objDestination.GetType()).FirstOrDefault(m => m.Name == member.Name); if (foundMember == null) { if (!_ignoreMissingMembers) { comparison.Add(string.Format("Missing member '{0}'", member.Name)); } // else do nothing } else { comparison.Compare(getSourceMemberValue(objSource, member).ToString(), getDestinationMemberValue(objDestination, foundMember).ToString(), compareMethod, "CompareMembersToMembers"); } } return(comparison); }