public IFragment TryMergeWithNext(IFragment nextFragment) { LiteralFragment lf = nextFragment as LiteralFragment; if (lf == null || lf.IsCData || IsCData) { return(null); } if (lf.Text == "") { return(this); } if (Text == "") { return(lf); } if (Text.EndsWith(" ") && lf.Text.StartsWith(" ")) // Collapse spaces { return(new LiteralFragment(Text.Substring(0, Text.Length - 1) + lf.Text)); } return(new LiteralFragment(Text + lf.Text)); }
public void TestTryMergeWithNext_MergeWithEmptyWorks() { var actual = new LiteralFragment("X", false).TryMergeWithNext(new LiteralFragment("", false)); Assert.AreEqual(new LiteralFragment("X"), actual); }
public void TestTryMergeWithNext_CanMergeNonCDatas() { var actual = new LiteralFragment("X", false).TryMergeWithNext(new LiteralFragment("Y", false)); Assert.AreEqual(new LiteralFragment("XY"), actual); }