Subversion-Projekte lars-tiefland.prado

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
require_once(dirname(__FILE__).'/BaseTestCase.php');
4
 
5
class CategoryDaoTestCase extends BaseTestCase
6
{
7
	protected $categoryDao;
8
	protected $projectDao;
9
 
10
	function setup()
11
	{
12
		parent::setup();
13
		$app = Prado::getApplication();
14
		$this->categoryDao = $app->getModule('daos')->getDao('CategoryDao');
15
		$this->projectDao = $app->getModule('daos')->getDao('ProjectDao');
16
		$this->flushDatabase();
17
	}
18
 
19
	function createNewProject()
20
	{
21
		$project = new ProjectRecord;
22
		$project->CreatorUserName = "admin";
23
		$project->DateCreated = time();
24
		$project->CompletionDate = strtotime('+1 month');
25
		$project->Description = 'Test project 1';
26
		$project->EstimateDuration = 100.5;
27
		$project->ManagerUserName = 'manager';
28
		$project->Name = 'Project 1';
29
 
30
		return $project;
31
	}
32
 
33
	function createNewProject2()
34
	{
35
		$project = new ProjectRecord;
36
		$project->CreatorUserName = "manager";
37
		$project->DateCreated = time();
38
		$project->CompletionDate = strtotime('+1 week');
39
		$project->Description = 'Test project 2';
40
		$project->EstimateDuration = 30.5;
41
		$project->ManagerUserName = 'manager';
42
		$project->Name = 'Project 2';
43
 
44
		return $project;
45
	}
46
 
47
	function createNewCategory()
48
	{
49
		$category = new CategoryRecord;
50
		$category->Name = 'Category 1';
51
		$category->EstimateDuration = 5.5;
52
		$category->Abbreviation = 'CAT 1';
53
 
54
		return $category;
55
	}
56
 
57
	function createNewCategory2()
58
	{
59
		$category = new CategoryRecord;
60
		$category->Name = 'Category 2';
61
		$category->EstimateDuration = 1.5;
62
		$category->Abbreviation = 'CAT2';
63
 
64
		return $category;
65
	}
66
 
67
	function createNewCategory3()
68
	{
69
		$category = new CategoryRecord;
70
		$category->Name = 'Category 3';
71
		$category->EstimateDuration = 2.5;
72
		$category->Abbreviation = 'CAT3';
73
 
74
		return $category;
75
	}
76
 
77
	function create3Categories()
78
	{
79
		$project1 = $this->createNewProject();
80
		$this->projectDao->addNewProject($project1);
81
 
82
		$project2 = $this->createNewProject2();
83
		$this->projectDao->addNewProject($project2);
84
 
85
		$category1 = $this->createNewCategory();
86
		$category1->ProjectID = $project1->ID;
87
 
88
		$category2 = $this->createNewCategory2();
89
		$category2->ProjectID = $project2->ID;
90
 
91
		$category3 = $this->createNewCategory3();
92
		$category3->ProjectID = $project1->ID;
93
 
94
		$this->categoryDao->addNewCategory($category1);
95
		$this->categoryDao->addNewCategory($category2);
96
		$this->categoryDao->addNewCategory($category3);
97
 
98
		return array($category1, $category2, $category3);
99
	}
100
 
101
	function testCreateNewCategory()
102
	{
103
		$project = $this->createNewProject();
104
		$this->projectDao->addNewProject($project);
105
 
106
		$category = $this->createNewCategory();
107
		$category->ProjectID = $project->ID;
108
 
109
		$this->categoryDao->addNewCategory($category);
110
 
111
		$check = $this->categoryDao->getCategoryByID(1);
112
 
113
		$this->assertEqual($category, $check);
114
	}
115
 
116
	function testCreateDuplicateCategory()
117
	{
118
		$project = $this->createNewProject();
119
		$this->projectDao->addNewProject($project);
120
 
121
		$category = $this->createNewCategory();
122
		$category->ProjectID = $project->ID;
123
 
124
		$this->categoryDao->addNewCategory($category);
125
 
126
		try
127
		{
128
			$this->categoryDao->addNewCategory($category);
129
			$this->pass();
130
		}
131
		catch(TSqlMapQueryExecutionException $e)
132
		{
133
			$this->fail();
134
		}
135
		$check = $this->categoryDao->getCategoryByID(1);
136
		$this->assertEqual($category, $check);
137
	}
138
 
139
	function testGetAllCategories()
140
	{
141
		$added = $this->create3Categories();
142
 
143
		$list = $this->categoryDao->getAllCategories();
144
		$this->assertEqual(count($list), 3);
145
		$this->assertEqual($added[0], $list[0]);
146
		$this->assertEqual($added[1], $list[1]);
147
		$this->assertEqual($added[2], $list[2]);
148
	}
149
 
150
	function testDeleteCategory()
151
	{
152
		$added = $this->create3Categories();
153
 
154
		$this->categoryDao->deleteCategory(1);
155
 
156
		$list = $this->categoryDao->getAllCategories();
157
 
158
		$this->assertEqual(count($list), 2);
159
		$this->assertEqual($added[1], $list[0]);
160
		$this->assertEqual($added[2], $list[1]);
161
	}
162
 
163
	function testCategoriesInProject()
164
	{
165
		$added = $this->create3Categories();
166
 
167
		$list = $this->categoryDao->getCategoriesByProjectID(1);
168
 
169
		$this->assertEqual(count($list), 2);
170
		$this->assertEqual($added[0], $list[0]);
171
		$this->assertEqual($added[2], $list[1]);
172
	}
173
 
174
	function testGetCategoryByCategoryNameandProjectId()
175
	{
176
		$added = $this->create3Categories();
177
		$cat = $this->categoryDao->getCategoryByNameInProject('Category 1', 1);
178
 
179
		$this->assertEqual($cat, $added[0]);
180
	}
181
 
182
	function testUpdateCategory()
183
	{
184
		$project = $this->createNewProject();
185
		$this->projectDao->addNewProject($project);
186
 
187
		$category = $this->createNewCategory();
188
		$category->ProjectID = $project->ID;
189
 
190
		$this->categoryDao->addNewCategory($category);
191
 
192
		$category->Name = "Test 2";
193
		$this->categoryDao->updateCategory($category);
194
 
195
		$check = $this->categoryDao->getCategoryByID($category->ID);
196
 
197
		$this->assertEqual($category, $check);
198
	}
199
}
200
 
201
?>