Exemple #1
0
        public void End_Text_Not_The_Same()
        {
            TwoWayDiff diffAlgorithm = new TwoWayDiff();

            DiffResult result = diffAlgorithm.PerformDiff("Common Text\nLeft Text", "Common Text\nRight Text");

            Assert.That(result.MergedSuccessfully, Is.False, "Merge should not have been successful");
            Assert.That(result.ConflictBlocks.Count, Is.EqualTo(1), "Wrong number of Blocks in conflict");

            Assert.That(result.BlockCount, Is.EqualTo(2), "Wrong number of blocks.");

            Block left   = result.ConflictBlocks[0].Left;
            Block right  = result.ConflictBlocks[0].Right;
            Block merged = result.ConflictBlocks[0].Merged;

            CommonTests.CheckBlocksAreNotNull(left, right, merged);
            Assert.That(result.ConflictBlocks[0].Base, Is.Null, "Base is not null");

            CommonTests.AssertConflictBlockHasThisText(left, right, merged, "Left Text", "Right Text");

            ReadOnlyCollection <ObjectList <Block> > blocks = result.GetBlocks();

            left   = blocks[0].Left;
            right  = blocks[0].Right;
            merged = blocks[0].Merged;

            CommonTests.CheckBlocksAreNotNull(left, right, merged);
            Assert.That(blocks[0].Base, Is.Null, "Base is not null");

            CommonTests.AssertAllHaveSameSingleLineOfText(left, right, merged, "Common Text");
        }
Exemple #2
0
        private void Select_One_Version_Of_Conflict(ObjectVersion versionToUse, string mergedText)
        {
            TwoWayDiff diffAlgorithm = new TwoWayDiff();
            DiffResult result        = diffAlgorithm.PerformDiff("Common Text\nLeft Text\nCommon Text2", "Common Text\nRight Text\nCommon Text2");

            Assert.That(result.MergedSuccessfully, Is.False, "Merge should not have been successful");
            Assert.That(result.ConflictBlocks.Count, Is.EqualTo(1), "Wrong number of Blocks in conflict");
            Assert.That(result.BlockCount, Is.EqualTo(3), "Wrong number of blocks.");

            // Use the Left text for the conflict.
            result.SelectVersionOfConflict(1, versionToUse);

            ReadOnlyCollection <ObjectList <Block> > blocks = result.GetBlocks();

            Block left   = blocks[0].Left;
            Block right  = blocks[0].Right;
            Block merged = blocks[0].Merged;

            CommonTests.CheckBlocksAreNotNull(left, right, merged);
            Assert.That(blocks[0].Base, Is.Null, "Base is not null");

            CommonTests.AssertAllHaveSameSingleLineOfText(left, right, merged, "Common Text");

            left   = blocks[1].Left;
            right  = blocks[1].Right;
            merged = blocks[1].Merged;

            CommonTests.AssertAllHaveOneLineOfText(left, right, merged);

            CommonTests.AssertSingleLineOfTextIneachVersionIsEqualTo(left, right, merged, "Left Text", "Right Text", mergedText);

            left   = blocks[2].Left;
            right  = blocks[2].Right;
            merged = blocks[2].Merged;

            CommonTests.CheckBlocksAreNotNull(left, right, merged);
            Assert.That(blocks[0].Base, Is.Null, "Base is not null");

            CommonTests.AssertAllHaveSameSingleLineOfText(left, right, merged, "Common Text2");

            Assert.That(result.MergedSuccessfully, Is.True, "MergedSucessfully was not set to true after all conflicts handled.");
        }