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);
 }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }