Beispiel #1
0
        public void CanCreateNonStandardConflictType()
        {
            var conflict = new DemoConflict(new NullMergeSituation());

            conflict.Context = new ContextDescriptor("testLabel", "testPath");
            var annotationXml = XmlTestHelper.WriteConflictAnnotation(conflict);

            Conflict.RegisterContextClass(typeof(DemoConflict));
            var regurgitated = Conflict.CreateFromChorusNotesAnnotation(annotationXml);

            Assert.That(regurgitated, Is.InstanceOf <DemoConflict>());
        }
Beispiel #2
0
        public void ConflictWithInvalidUtf8DetailsWorks()
        {
            var conflict = new DemoConflict(new NullMergeSituation());

            conflict.Context     = new ContextDescriptor("testLabel", "testPath");
            conflict.HtmlDetails = "Bad\uDBFFegg";             // Unmatched low surrogate
            var annotationXml = XmlTestHelper.WriteConflictAnnotation(conflict);

            Conflict.RegisterContextClass(typeof(DemoConflict));
            var regurgitated = Conflict.CreateFromChorusNotesAnnotation(annotationXml);

            Assert.That(regurgitated.HtmlDetails, Is.StringContaining("Badegg"));            // the /uDB80 should have dropped
        }
Beispiel #3
0
        public void RemovedVsEditedElementConflict_RoundtripThroughXml()
        {
            MergeSituation mergesituation = new MergeSituation("path", "x", "1", "y", "2", MergeOrder.ConflictHandlingModeChoices.TheyWin);
            var            c = new RemovedVsEditedElementConflict("testElement",
                                                                  GetNodeFromString("<a>ours</a>"),
                                                                  GetNodeFromString("<a>theirs</a>"),
                                                                  GetNodeFromString("<a>ancestor</a>"),
                                                                  mergesituation, new ElementStrategy(false), "theWinner");

            c.Context = new ContextDescriptor("testLabel", "testPath");
            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);
        }
Beispiel #4
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));
        }