public void GetBindingPairs_Ignores_Candidates_With_Mismatched_Flattened_Path() { var provider = new FlattenNameMatchBindingPairProvider <TypeModel, PropertyField, TypeModel, PropertyField>(); var bindingPairs = provider.GetBindingPairs( SourceTypeModel, TargetTypeModel); var mismatchedExists = bindingPairs.Any(candidate => string.Join(".", candidate.Source.Path) == "SubProperty" && string.Join(".", candidate.Target.Path) == "Sub.Mismatched" ); Assert.IsFalse(mismatchedExists, "Binding pair with mismatched flat paths found."); }
public void GetBindingPairs_Includes_Candidates_With_Same_Flattened_Path_Right_To_Left() { var provider = new FlattenNameMatchBindingPairProvider <TypeModel, PropertyField, TypeModel, PropertyField>(); var bindingPairs = provider.GetBindingPairs( TargetTypeModel, SourceTypeModel); var testPairExists = bindingPairs.Any(candidate => string.Join(".", candidate.Target.Path) == "SubProperty" && string.Join(".", candidate.Source.Path) == "Sub.Property" ); Assert.IsTrue(testPairExists, "No binding pair with identical flat paths found."); }
public void GetBindingPairs_Stops_At_MaxDepth() { var candidateSource = new FlattenNameMatchBindingPairProvider <TypeModel, PropertyField, TypeModel, PropertyField> { MaxDepth = 1 }; var bindingPairs = candidateSource.GetBindingPairs( SourceTypeModel, TargetTypeModel); var deepBindingExists = bindingPairs.Any(candidate => string.Join(".", candidate.Source.Path) == "SubProperty" && string.Join(".", candidate.Target.Path) == "Sub.Property" ); Assert.IsFalse(deepBindingExists, "Deep binding pair shouldn't exist"); }