using System;
using System.Collections;
using NUnit.Framework;
using DesignPatterns.Core.Composite;
namespace DesignPatterns.Tests.Composite
{
// Storyのテスト・クラス
[TestFixture] public class StoryTest
{
private Story target;
[SetUp] public void対象クラスのインスタンスを生成する()
{
target = new Story(1);
}
[Test] public void シンプルなストーリーを生成する()
{
target. Priority = 5;
target.Content = "ストーリーをXMLで出力する。";
Assert.AreEqual(1, target.No, "ストーリー番号が違います。");
Assert.AreEqual(5, target.Priority, "優先度が違います。");
Assert.AreEqual("ストーリーをXMLで出力する。", target.Content,
"ストーリーの内容が違います。");
}
[Test] public void 追加したタスクにはストーリー番号が設定される()
{
target.Add(new Task(1));
Assert.AreEqual(1, target.TaskCount, "タスク数が違います。");
Assert.AreEqual(1, target[0].StoryNo,
"ストーリー番号が設定されていません。");
}
[Test]
[ExpectedException(typeof(ArgumentOutOfRangeException))]
public void 存在しないタスクを指定すると例外が発生する()
{
target.Add(new Task(1));
Task invalidTask = target[1];
}
[Test] public void 保持するタスクを列挙できる()
{
target.Add(new Task(1));
target.Add(new Task(2));
IEnumerator en = target.GetEnumerator();
Assert.IsTrue(en.MoveNext(), "次のタスクは存在するはずです。");
Assert.AreEqual(1, ((Task) en.Current).No, "タスクが違います。");
Assert.IsTrue(en.MoveNext(), "次のタスクは存在するはずです。");
Assert.AreEqual(2, ((Task) en.Current).No, "タスクが違います。");
Assert.IsFalse(en.MoveNext(), "次のタスクは存在しないはずです。");
}
}
} |
|