Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Object Graph Comparison - ShouldBeEquivalentTo(...) #411

Merged
merged 9 commits into from
Jan 14, 2019
Merged

Object Graph Comparison - ShouldBeEquivalentTo(...) #411

merged 9 commits into from
Jan 14, 2019

Commits on Jul 24, 2017

  1. Define public API.

    TaffarelJr committed Jul 24, 2017
    Configuration menu
    Copy the full SHA
    7955d69 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5d5a22d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4fa54a1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f89c8bd View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    03a584d View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    8cd703a View commit details
    Browse the repository at this point in the history
  7. Add IEnumerable comparison logic and unit tests.

    This change involves change the datatype of the 'path' variable from IList<T> to IEnumerable<T> to get LINQ functionality (and maybe some better performance due to fewer passes through the lists).
    TaffarelJr committed Jul 24, 2017
    Configuration menu
    Copy the full SHA
    dc84c95 View commit details
    Browse the repository at this point in the history
  8. Add child property comparison logic and unit tests.

    This introduces the actual recursion into the comparison logic.
    Some refactoring of code is included to call attention to the places where the object graph path is modified.
    TaffarelJr committed Jul 24, 2017
    Configuration menu
    Copy the full SHA
    4001bae View commit details
    Browse the repository at this point in the history
  9. Add infinite loop detection logic and unit tests.

    This introduces a dictionary that keeps track of which objects have previously been (or are currently being) compared. Any new child comparisons will first check this dictionary; if the comparison has already been done between the current objects, then they are simply skipped. This should avoid infinite loop problems.
    The dictionary is keyed by the actual object being compared, and the values represent a list of objects that the key has been compared against.
    TaffarelJr committed Jul 24, 2017
    Configuration menu
    Copy the full SHA
    a7e7ddb View commit details
    Browse the repository at this point in the history