1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 
5 using Xunit;
6 
7 namespace System.Xml.Tests
8 {
9     public class AppendDataTests
10     {
AppendNullToXmlCharacterData(XmlCharacterData xmlCharacterData)11         private static void AppendNullToXmlCharacterData(XmlCharacterData xmlCharacterData)
12         {
13             var dataBefore = xmlCharacterData.Data;
14             xmlCharacterData.AppendData(null);
15             Assert.Equal(dataBefore, xmlCharacterData.Data);
16         }
17 
18         [Fact]
AppendNullToTextNodeTest()19         public static void AppendNullToTextNodeTest()
20         {
21             var xmlDocument = new XmlDocument();
22             AppendNullToXmlCharacterData(xmlDocument.CreateTextNode("a"));
23         }
24 
25         [Fact]
AppendNullToCommentNodeTest()26         public static void AppendNullToCommentNodeTest()
27         {
28             var xmlDocument = new XmlDocument();
29             AppendNullToXmlCharacterData(xmlDocument.CreateComment("a"));
30         }
31 
32         [Fact]
AppendNullToCDataNodeTest()33         public static void AppendNullToCDataNodeTest()
34         {
35             var xmlDocument = new XmlDocument();
36             AppendNullToXmlCharacterData(xmlDocument.CreateCDataSection("a"));
37         }
38 
39         [Fact]
AppendDataToAnEmptyCdataNode()40         public static void AppendDataToAnEmptyCdataNode()
41         {
42             var xmlDocument = new XmlDocument();
43             xmlDocument.LoadXml("<root><![CDATA[]]></root>");
44 
45             var cdataNode = (XmlCharacterData)xmlDocument.DocumentElement.FirstChild;
46 
47             cdataNode.AppendData("hello");
48 
49             Assert.Equal("hello", cdataNode.Data);
50         }
51 
52         [Fact]
AppendDataToACdataNodeWithSomeContent()53         public static void AppendDataToACdataNodeWithSomeContent()
54         {
55             var xmlDocument = new XmlDocument();
56             xmlDocument.LoadXml("<root><![CDATA[already here]]></root>");
57 
58             var cdataNode = (XmlCharacterData)xmlDocument.DocumentElement.FirstChild;
59 
60             cdataNode.AppendData(" hello");
61 
62             Assert.Equal("already here hello", cdataNode.Data);
63         }
64     }
65 }
66