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 | 
 
 
 |