OSDN Git Service

#30244 Visual Studio 2012 Express for Windows Desktop, StyleCop 4.7, WiX 3.6 に合わせたソース...
[wptscs/wpts.git] / WptscsTest / Parsers / MediaWikiVariableTest.cs
1 // ================================================================================================
2 // <summary>
3 //      MediaWikiVariableのテストクラスソース。</summary>
4 //
5 // <copyright file="MediaWikiVariableTest.cs" company="honeplusのメモ帳">
6 //      Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
7 // <author>
8 //      Honeplus</author>
9 // ================================================================================================
10
11 namespace Honememo.Wptscs.Parsers
12 {
13     using System;
14     using Honememo.Parsers;
15     using Microsoft.VisualStudio.TestTools.UnitTesting;
16
17     /// <summary>
18     /// <see cref="MediaWikiVariable"/>のテストクラスです。
19     /// </summary>
20     [TestClass]
21     public class MediaWikiVariableTest
22     {
23         #region コンストラクタテストケース
24
25         /// <summary>
26         /// コンストラクタテストケース。
27         /// </summary>
28         [TestMethod]
29         public void TestConstructor()
30         {
31             MediaWikiVariable element;
32             IElement value;
33
34             element = new MediaWikiVariable(null);
35             Assert.IsNull(element.Variable);
36             Assert.IsNull(element.Value);
37
38             element = new MediaWikiVariable("変数名1");
39             Assert.AreEqual("変数名1", element.Variable);
40             Assert.IsNull(element.Value);
41
42             value = new TextElement("値");
43             element = new MediaWikiVariable("変数名2", value);
44             Assert.AreEqual("変数名2", element.Variable);
45             Assert.AreSame(value, element.Value);
46         }
47
48         #endregion
49
50         #region プロパティテストケース
51
52         /// <summary>
53         /// Variableプロパティテストケース。
54         /// </summary>
55         [TestMethod]
56         public void TestVariable()
57         {
58             MediaWikiVariable element = new MediaWikiVariable("変数名");
59
60             Assert.AreEqual("変数名", element.Variable);
61             element.Variable = "test";
62             Assert.AreEqual("test", element.Variable);
63             element.Variable = null;
64             Assert.IsNull(element.Variable);
65         }
66
67         /// <summary>
68         /// Valueプロパティテストケース。
69         /// </summary>
70         [TestMethod]
71         public void TestValue()
72         {
73             MediaWikiVariable element = new MediaWikiVariable("変数名");
74             IElement value = new TextElement("値");
75
76             Assert.IsNull(element.Value);
77             element.Value = value;
78             Assert.AreSame(value, element.Value);
79             element.Value = null;
80             Assert.IsNull(element.Value);
81         }
82
83         #endregion
84         
85         #region インタフェース実装メソッドテストケース
86
87         /// <summary>
88         /// ToStringメソッドテストケース。
89         /// </summary>
90         [TestMethod]
91         public void TestToString()
92         {
93             MediaWikiVariable element = new MediaWikiVariable("変数名");
94
95             // 変数名のみ
96             Assert.AreEqual("{{{変数名}}}", element.ToString());
97
98             // 単純な値
99             element.Value = new TextElement("値");
100             Assert.AreEqual("{{{変数名|値}}}", element.ToString());
101
102             // 複雑な値
103             ListElement list = new ListElement();
104             list.Add(new MediaWikiLink("記事名"));
105             list.Add(new MediaWikiTemplate("テンプレート名"));
106             element.Value = list;
107             Assert.AreEqual("{{{変数名|[[記事名]]{{テンプレート名}}}}}", element.ToString());
108         }
109
110         #endregion
111     }
112 }