-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTodoManagerTest.php
More file actions
115 lines (96 loc) · 4.25 KB
/
Copy pathTodoManagerTest.php
File metadata and controls
115 lines (96 loc) · 4.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
require_once "TodoManager.php";
require_once "Todo.php";
class TodoManagerTest extends PHPUnit_Framework_TestCase{
private $todoList;
public function setUp()
{
$this->todoList = array(
'yesterdayTodo'=>new Todo("1番目のTODOデータ"),
'todayTodo'=>new Todo("2番目のTODOデータ"),
'tomorrowTodo'=>new Todo("3番目のTODOデータ")
);
}
public function test1件目のTODOを取得する()
{
$manager = $this->createTodoManagerHasTask();
$this->assertSameTodo($this->todoList["yesterdayTodo"], $manager->getTodo(1));
}
public function test2件目のTODOを取得する()
{
$manager = $this->createTodoManagerHasTask();
$this->assertSameTodo($this->todoList["todayTodo"], $manager->getTodo(2));
}
public function testTODOの件数を取得する()
{
$manager = $this->createTodoManagerHasTask();
$this->assertEquals(count($this->todoList),$manager->getTodoCount());
}
public function test全てのTODOを取得する()
{
$manager = $this->createTodoManagerHasTask();
$this->assertEquals(
array($this->todoList["yesterdayTodo"],
$this->todoList["todayTodo"],
$this->todoList["tomorrowTodo"])
,$manager->getTodoList());
}
public function test1番目のTODOを取得する()
{
//昨日と今日と明日のやることを順番に登録した時
$manager = $this->createTodoManagerHasTask();
//先頭のやることを取得し 昨日のやることを取得できること。
$this->assertSameTodo($this->todoList["yesterdayTodo"], $manager->getFirstTodo());
}
public function test最後のTODOを取得する()
{
//昨日と今日と明日のやることを順番に登録した時
$manager = $this->createTodoManagerHasTask();
$this->assertSameTodo($this->todoList["tomorrowTodo"], $manager->getLastTodo());
}
public function test最初のTodoを削除する()
{
//複数件タスクを追加したtodoリストから最初のタスクを削除する
$manager = $this->createTodoManagerHasTask();
$this->assertSameTodo($this->todoList["yesterdayTodo"], $manager->getFirstTodo());
$this->assertNotNull($manager->shiftTodo());
$this->assertSameTodo($this->todoList["todayTodo"], $manager->getFirstTodo());
}
public function test最後のTodoを削除する()
{
//複数件タスクを追加したtodoリストから最初のタスクを削除する
$manager = $this->createTodoManagerHasTask();
$this->assertSameTodo($this->todoList["tomorrowTodo"], $manager->getLastTodo());
$this->assertNotNull($manager->popTodo());
$this->assertSameTodo($this->todoList["todayTodo"], $manager->getLastTodo());
}
public function test全てのTodoを削除する()
{
$manager = $this->createTodoManagerHasTask();
$this->assertSameTodo($this->todoList["tomorrowTodo"], $manager->getLastTodo());
$manager->deleteAll();
$this->assertEmpty($manager->getTodoList());
}
public function testTodoの順番を変更する()
{
$manager = $this->createTodoManagerHasTask();
$this->assertSameTodo($this->todoList["yesterdayTodo"], $manager->getFirstTodo());
//最後に思いついたタスクが一番優先度が上がった
$manager->changeOrder($manager->getLastTodo(),1);
$this->assertSameTodo($this->todoList["tomorrowTodo"], $manager->getFirstTodo());
}
public function createTodoManagerHasTask()
{
$manager = new TodoManager();
$manager->addTodo($this->todoList["yesterdayTodo"]);
$manager->addTodo($this->todoList["todayTodo"]);
$manager->addTodo($this->todoList["tomorrowTodo"]);
return $manager;
}
public function assertSameTodo(Todo $expectedTodo, Todo $actualTodo)
{
$this->assertEquals($expectedTodo->title , $actualTodo->title);
$this->assertEquals($expectedTodo->detail, $actualTodo->detail);
$this->assertEquals($expectedTodo->getStatus() , $actualTodo->getStatus());
}
}