categoryDao = $app->getModule('daos')->getDao('CategoryDao'); $this->projectDao = $app->getModule('daos')->getDao('ProjectDao'); $this->flushDatabase(); } function createNewProject() { $project = new ProjectRecord; $project->CreatorUserName = "admin"; $project->DateCreated = time(); $project->CompletionDate = strtotime('+1 month'); $project->Description = 'Test project 1'; $project->EstimateDuration = 100.5; $project->ManagerUserName = 'manager'; $project->Name = 'Project 1'; return $project; } function createNewProject2() { $project = new ProjectRecord; $project->CreatorUserName = "manager"; $project->DateCreated = time(); $project->CompletionDate = strtotime('+1 week'); $project->Description = 'Test project 2'; $project->EstimateDuration = 30.5; $project->ManagerUserName = 'manager'; $project->Name = 'Project 2'; return $project; } function createNewCategory() { $category = new CategoryRecord; $category->Name = 'Category 1'; $category->EstimateDuration = 5.5; $category->Abbreviation = 'CAT 1'; return $category; } function createNewCategory2() { $category = new CategoryRecord; $category->Name = 'Category 2'; $category->EstimateDuration = 1.5; $category->Abbreviation = 'CAT2'; return $category; } function createNewCategory3() { $category = new CategoryRecord; $category->Name = 'Category 3'; $category->EstimateDuration = 2.5; $category->Abbreviation = 'CAT3'; return $category; } function create3Categories() { $project1 = $this->createNewProject(); $this->projectDao->addNewProject($project1); $project2 = $this->createNewProject2(); $this->projectDao->addNewProject($project2); $category1 = $this->createNewCategory(); $category1->ProjectID = $project1->ID; $category2 = $this->createNewCategory2(); $category2->ProjectID = $project2->ID; $category3 = $this->createNewCategory3(); $category3->ProjectID = $project1->ID; $this->categoryDao->addNewCategory($category1); $this->categoryDao->addNewCategory($category2); $this->categoryDao->addNewCategory($category3); return array($category1, $category2, $category3); } function testCreateNewCategory() { $project = $this->createNewProject(); $this->projectDao->addNewProject($project); $category = $this->createNewCategory(); $category->ProjectID = $project->ID; $this->categoryDao->addNewCategory($category); $check = $this->categoryDao->getCategoryByID(1); $this->assertEqual($category, $check); } function testCreateDuplicateCategory() { $project = $this->createNewProject(); $this->projectDao->addNewProject($project); $category = $this->createNewCategory(); $category->ProjectID = $project->ID; $this->categoryDao->addNewCategory($category); try { $this->categoryDao->addNewCategory($category); $this->pass(); } catch(TSqlMapQueryExecutionException $e) { $this->fail(); } $check = $this->categoryDao->getCategoryByID(1); $this->assertEqual($category, $check); } function testGetAllCategories() { $added = $this->create3Categories(); $list = $this->categoryDao->getAllCategories(); $this->assertEqual(count($list), 3); $this->assertEqual($added[0], $list[0]); $this->assertEqual($added[1], $list[1]); $this->assertEqual($added[2], $list[2]); } function testDeleteCategory() { $added = $this->create3Categories(); $this->categoryDao->deleteCategory(1); $list = $this->categoryDao->getAllCategories(); $this->assertEqual(count($list), 2); $this->assertEqual($added[1], $list[0]); $this->assertEqual($added[2], $list[1]); } function testCategoriesInProject() { $added = $this->create3Categories(); $list = $this->categoryDao->getCategoriesByProjectID(1); $this->assertEqual(count($list), 2); $this->assertEqual($added[0], $list[0]); $this->assertEqual($added[2], $list[1]); } function testGetCategoryByCategoryNameandProjectId() { $added = $this->create3Categories(); $cat = $this->categoryDao->getCategoryByNameInProject('Category 1', 1); $this->assertEqual($cat, $added[0]); } function testUpdateCategory() { $project = $this->createNewProject(); $this->projectDao->addNewProject($project); $category = $this->createNewCategory(); $category->ProjectID = $project->ID; $this->categoryDao->addNewCategory($category); $category->Name = "Test 2"; $this->categoryDao->updateCategory($category); $check = $this->categoryDao->getCategoryByID($category->ID); $this->assertEqual($category, $check); } } ?>