Example #1
0
        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);
		}