public void GetRecord_GoodRecordInfo_ReturnsRecord() { var docA = new XmlDocument(); docA.LoadXml(@"<doc><test id='2'>a</test></doc>"); var docX = new XmlDocument(); docX.LoadXml(@"<doc><test id='2'>x</test></doc>"); var docY = new XmlDocument(); docY.LoadXml(@"<doc><test id='2'>y</test></doc>"); var situation = new MergeSituation("ARelativePath", "x", "x1", "y", "y1",MergeOrder.ConflictHandlingModeChoices.WeWin); var conflict = new BothEditedTextConflict(docX.SelectSingleNode("doc/test"), docY.SelectSingleNode("doc/test"), docA.SelectSingleNode("doc/test"), situation, "theWinner"); conflict.Context = new ContextDescriptor("dummy","//test[@id='2']"); var retriever = new DummyXmlRetriever(docA,docX, docY); var result = conflict.GetConflictingRecordOutOfSourceControl(retriever, ThreeWayMergeSources.Source.UserX); Assert.AreEqual("<test id=\"2\">x</test>", result); }
public void BothEditedTextConflict_RoundtripThroughXml() { MergeSituation mergesituation = new MergeSituation("path", "x", "1", "y", "2", MergeOrder.ConflictHandlingModeChoices.TheyWin); var c = new BothEditedTextConflict( GetNodeFromString("<a>y</a>"), //NB: since "y" is the "alpha-dog" under "TheyWin" policy, it is the 1st parameter GetNodeFromString("<a>x</a>"), GetNodeFromString("<a>ancestor</a>"), mergesituation, "theWinner"); c.Context = new ContextDescriptor("testLabel", "testPath"); c.HtmlDetails = "<body>this is a conflict</body>"; string desc = c.GetFullHumanReadableDescription(); var annotationXml = XmlTestHelper.WriteConflictAnnotation(c); var regurgitated = Conflict.CreateFromChorusNotesAnnotation(annotationXml); Assert.AreEqual("path", regurgitated.RelativeFilePath); Assert.AreEqual(desc, regurgitated.GetFullHumanReadableDescription()); Assert.AreEqual(c.Context.PathToUserUnderstandableElement, regurgitated.Context.PathToUserUnderstandableElement); Assert.AreEqual(c.Context.DataLabel, regurgitated.Context.DataLabel); Assert.That(regurgitated.HtmlDetails, Is.EqualTo(c.HtmlDetails)); }
public void GetRecord_GoodRecordInfo_ReturnsRecord() { var docA = new XmlDocument(); docA.LoadXml(@"<doc><test id='2'>a</test></doc>"); var docX = new XmlDocument(); docX.LoadXml(@"<doc><test id='2'>x</test></doc>"); var docY = new XmlDocument(); docY.LoadXml(@"<doc><test id='2'>y</test></doc>"); var situation = new MergeSituation("ARelativePath", "x", "x1", "y", "y1", MergeOrder.ConflictHandlingModeChoices.WeWin); var conflict = new BothEditedTextConflict(docX.SelectSingleNode("doc/test"), docY.SelectSingleNode("doc/test"), docA.SelectSingleNode("doc/test"), situation, "theWinner"); conflict.Context = new ContextDescriptor("dummy", "//test[@id='2']"); var retriever = new DummyXmlRetriever(docA, docX, docY); var result = conflict.GetConflictingRecordOutOfSourceControl(retriever, ThreeWayMergeSources.Source.UserX); Assert.AreEqual("<test id=\"2\">x</test>", result); }