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"); }
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."); }