TryAtSoftware.Equalizer is a library that should simplify the process of asserting the semantic equality between two values. We offer a reusable methodology that can be applied to every projects of yours.
Partial equalization - we have to equalize two complex objects by ignoring some of the properties.
Ideas of achieving this:
Wrap the object and expose information about the property names that should be ignored. Then extend the General equalization profile so it can assert the equality between the wrapped value and the actual value.
If I have the following hierarchy - IBaseInterface, ImplementationA : IBaseInterface and ImplementationB : IBaseInterface, then I should be able to assert the partial general equality between two instances of ImplementationA and ImplementationB and still exclude some common interface property.
We, currently, have a limitation described in the documentation - value templates should always be the expected value.
We need to change this and allow value templates to be included within the equality validation process as an actual value.