1 // ================================================================================================
3 // XmlElementのテストクラスソース。</summary>
5 // <copyright file="XmlElementTest.cs" company="honeplusのメモ帳">
6 // Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
9 // ================================================================================================
11 namespace Honememo.Parsers
14 using System.Collections.Generic;
15 using NUnit.Framework;
18 /// XmlElementのテストクラスです。
21 public class XmlElementTest
29 public void TestConstructor()
31 XmlElement element = new XmlElement("testname1");
32 Assert.AreEqual("testname1", element.Name);
33 Assert.AreEqual(0, element.Attributes.Count);
34 Assert.AreEqual(0, element.Count);
36 element = new XmlElement("testname2", "testvalue");
37 Assert.AreEqual("testname2", element.Name);
38 Assert.AreEqual(0, element.Attributes.Count);
39 Assert.AreEqual(1, element.Count);
40 Assert.IsInstanceOf(typeof(TextElement), element[0]);
41 Assert.AreEqual("testvalue", element[0].ToString());
43 IDictionary<string, string> attribute = new Dictionary<string, string>();
44 attribute.Add("testattr1", "testattrvalue1");
45 ICollection<IElement> collection = new List<IElement>();
46 collection.Add(new XmlCommentElement("testcomment"));
47 element = new XmlElement("testname3", attribute, collection);
48 Assert.AreEqual("testname3", element.Name);
49 Assert.AreEqual("testattrvalue1", element.Attributes["testattr1"]);
50 Assert.AreEqual("testcomment", ((XmlCommentElement)element[0]).Text);
61 public void TestName()
63 XmlElement element = new XmlElement("testname1");
64 Assert.AreEqual("testname1", element.Name);
65 element.Name = "testname2";
66 Assert.AreEqual("testname2", element.Name);
70 /// Nameプロパティテストケース(null)。
73 [ExpectedException(typeof(ArgumentNullException))]
74 public void TestNameNull()
76 XmlElement element = new XmlElement(null);
80 /// Nameプロパティテストケース(空文字列)。
83 [ExpectedException(typeof(ArgumentException))]
84 public void TestNameEmpty()
86 XmlElement element = new XmlElement(String.Empty);
90 /// Nameプロパティテストケース(空白文字列)。
93 [ExpectedException(typeof(ArgumentException))]
94 public void TestNameBlank()
96 XmlElement element = new XmlElement(" ");
100 /// Attributesプロパティテストケース。
103 public void TestAttributes()
105 XmlElement element = new XmlElement("testname");
106 Assert.IsNotNull(element.Attributes);
111 #region インタフェース実装メソッドテストケース
114 /// ToStringメソッドテストケース。
117 public void TestToString()
119 XmlElement element = new XmlElement("form");
120 Assert.AreEqual("<form />", element.ToString());
121 element.Attributes.Add("action", "/test.html");
122 Assert.AreEqual("<form action=\"/test.html\" />", element.ToString());
123 element.Attributes.Add("disabled", String.Empty);
124 Assert.AreEqual("<form action=\"/test.html\" disabled=\"\" />", element.ToString());
125 element.Add(new TextElement("フォーム内のテキスト"));
126 Assert.AreEqual("<form action=\"/test.html\" disabled=\"\">フォーム内のテキスト</form>", element.ToString());
127 element.Add(new XmlCommentElement("コメント"));
128 Assert.AreEqual("<form action=\"/test.html\" disabled=\"\">フォーム内のテキスト<!--コメント--></form>", element.ToString());
129 element.Attributes.Add("test_attr", "&<>\"");
130 Assert.AreEqual("<form action=\"/test.html\" disabled=\"\" test_attr=\"&<>"\">フォーム内のテキスト<!--コメント--></form>", element.ToString());