public void FindsNothingInNullList()
 {
     var doc = new XmlDocument();
     var target = XmlUtilities.GetDocumentNodeFromRawXml(@"<b/>", doc);
     var finder = new FindByKeyAttributeInList("key");
     Assert.That(finder.GetNodeToMerge(target, null, new HashSet<XmlNode>()), Is.Null);
 }
 public void FindsNothingWithNoKey()
 {
     var doc = new XmlDocument();
     var parent = XmlUtilities.GetDocumentNodeFromRawXml(@"<a><b key='one'/></a>", doc);
     var target = XmlUtilities.GetDocumentNodeFromRawXml(@"<b/>", doc);
     var finder = new FindByKeyAttributeInList("key");
     Assert.That(finder.GetNodeToMerge(target, parent, SetFromChildren.Get(parent)), Is.Null);
 }
 public void FindsNoMatchWhereTooFewOccurrences()
 {
     var doc = new XmlDocument();
     var parent = XmlUtilities.GetDocumentNodeFromRawXml(@"<a><b key='one'/><b key='two'/></a>", doc);
     var target = XmlUtilities.GetDocumentNodeFromRawXml(@"<a><b key='one'/><b key='one'/></a>", doc).ChildNodes[1];
     var finder = new FindByKeyAttributeInList("key");
     Assert.That(finder.GetNodeToMerge(target, parent, SetFromChildren.Get(parent)), Is.Null);
 }
 public void FindsCorrespondingMatchInSecondPlace()
 {
     var doc = new XmlDocument();
     var parent = XmlUtilities.GetDocumentNodeFromRawXml(@"<a><b key='one'/><b key='two'/><b key='one'/></a>", doc);
     var target = XmlUtilities.GetDocumentNodeFromRawXml(@"<a><b key='one'/><b key='one'/></a>", doc).ChildNodes[1];
     var finder = new FindByKeyAttributeInList("key");
     Assert.That(finder.GetNodeToMerge(target, parent, SetFromChildren.Get(parent)), Is.EqualTo(parent.ChildNodes[2]));
 }
 public void FindsSecondDuplicateWhereFirstNotAcceptable()
 {
     var doc = new XmlDocument();
     var parent = XmlUtilities.GetDocumentNodeFromRawXml(@"<a><b key='one'/><b key='two'/><b key='two'/></a>", doc);
     var target = XmlUtilities.GetDocumentNodeFromRawXml(@"<a><b key='one'/><b key='two'/></a>", doc).ChildNodes[1];
     var desiredResult = parent.ChildNodes[2];
     var otherOption = parent.ChildNodes[1]; // acceptable but not matching
     var acceptableTargets = new HashSet<XmlNode>(new [] {otherOption, desiredResult});
     var finder = new FindByKeyAttributeInList("key");
     Assert.That(finder.GetNodeToMerge(target, parent, acceptableTargets), Is.EqualTo(parent.ChildNodes[2]));
 }