Imports System
Imports System.Collections
Imports NUnit.Framework
Imports DesignPatterns.Core.TemplateMethod
Namespace DesignPatterns.Tests.TemplateMethod
' XpValuesクラスのテスト・クラス
<TestFixture()> Public Class XpValuesTest
' XpValuesクラスのインスタンスを格納するフィールド変数
Private _target As XpValues
' テストの初期化
<SetUp()> Public Sub Init()
' XpValuesオブジェクトの生成(プレーン・テキスト形式で出力できる)
_target = XpValues.CreatePlainTextFormatableXpValues("XP 2nd Edition")
End Sub
' XpValuesオブジェクトを生成するテスト
<Test()> Public Sub CreateInstance()
Assert.AreEqual("XP 2nd Edition", _target.Name, "名前が違います。")
Assert.AreEqual(0, _target.Count, "価値の数が違います。")
End Sub
' XPの「5つの価値」の内容を登録するテスト
<Test()> Public Sub Add()
_target.Add("コミュニケーション")
_target.Add("シンプル")
_target.Add("フィードバック")
_target.Add("勇気")
_target.Add("敬意")
Assert.AreEqual(5, _target.Count, "価値の数が違います。")
Assert.AreEqual("コミュニケーション", _target(0), "価値が違います。")
Assert.AreEqual("シンプル", _target(1), "価値が違います。")
Assert.AreEqual("フィードバック", _target(2), "価値が違います。")
Assert.AreEqual("勇気", _target(3), "価値が違います。")
Assert.AreEqual("敬意", _target(4), "価値が違います。")
End Sub
' 「5つの価値」の登録内容を走査するテスト
<Test()> Public Sub GetEnumerator()
_target.Add("コミュニケーション")
_target.Add("シンプル")
Dim en As IEnumerator = _target.GetEnumerator()
Assert.IsTrue(en.MoveNext(), "次の要素は存在するはずです。")
Assert.AreEqual("コミュニケーション", en.Current, "要素が違います。")
Assert.IsTrue(en.MoveNext(), "次の要素は存在するはずです。")
Assert.AreEqual("シンプル", en.Current, "要素が違います。")
Assert.IsFalse(en.MoveNext(), "次の要素は存在しないはずです。")
End Sub
' プレーン・テキスト形式で「5つの価値」を出力するテスト
<Test()> Public Sub PlainTextFormat()
_target.Add("コミュニケーション")
_target.Add("シンプル")
_target.Add("フィードバック")
_target.Add("勇気")
_target.Add("敬意")
Dim expected As String = _
"XP 2nd Editionの5つの価値" & vbCrLf & _
"・コミュニケーション" & vbCrLf & _
"・シンプル" & vbCrLf & _
"・フィードバック" & vbCrLf & _
"・勇気" & vbCrLf & _
"・敬意" & vbCrLf
Assert.AreEqual(expected, _target.Format(), "結果が違います。")
End Sub
' HTML形式で「5つの価値」を出力するテスト
<Test()> Public Sub HtmlTextFormat()
' XpValuesオブジェクトの生成(HTML形式で出力できる)
_target = XpValues.CreateHtmlTextFormatableXpValues("XP 2nd Edition")
_target.Add("コミュニケーション")
_target.Add("シンプル")
_target.Add("フィードバック")
_target.Add("勇気")
_target.Add("敬意")
Dim expected As String = _
"<p>XP 2nd Editionの5つの価値</p>" & vbCrLf & _
"<ul>" & vbCrLf & _
"<li>コミュニケーション" & vbCrLf & _
"<li>シンプル" & vbCrLf & _
"<li>フィードバック" & vbCrLf & _
"<li>勇気" & vbCrLf & _
"<li>敬意" & vbCrLf & _
"</ul>" & vbCrLf
Assert.AreEqual(expected, _target.Format(), "結果が違います。")
End Sub
End Class
End Namespace |
|