Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phprequire_once(dirname(__FILE__).'/BaseTestCase.php');class TimeEntryDaoTestCase extends BaseTestCase{protected $entryDao;protected $projectDao;protected $userDao;protected $categoryDao;protected $reportDao;function setup(){parent::setup();$app = Prado::getApplication();$this->entryDao = $app->getModule('daos')->getDao('TimeEntryDao');$this->projectDao = $app->getModule('daos')->getDao('ProjectDao');$this->userDao = $app->getModule('daos')->getDao('UserDao');$this->categoryDao = $app->getModule('daos')->getDao('CategoryDao');$this->reportDao = $app->getModule('daos')->getDao('ReportDao');$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 createProjectsAndCategories(){$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($project1, $project2, $category1, $category2, $category3);}function assertSameEntry($entry1, $entry2){$this->assertEqual($entry1->CreatorUserName, $entry2->CreatorUserName);$this->assertEqual($entry1->Description, $entry2->Description);$this->assertEqual($entry1->Duration, $entry2->Duration);$this->assertEqual($entry1->ID, $entry2->ID);$this->assertEqual($entry1->ReportDate, $entry2->ReportDate);$this->assertEqual($entry1->Username, $entry2->Username);}function createTimeEntry1(){$added = $this->createProjectsAndCategories();$entry = new TimeEntryRecord;$entry->CreatorUserName = "admin";$entry->Category = $added[2];$entry->Description = "New work";$entry->Duration = 1.5;$entry->Project = $added[0];$entry->ReportDate = strtotime('-1 day');$entry->Username = 'consultant';return array($entry, $added);}function createTimeEntries2(){$added = $this->createProjectsAndCategories();$entry = new TimeEntryRecord;$entry->CreatorUserName = "admin";$entry->Category = $added[2];$entry->Description = "New work";$entry->Duration = 1.2;$entry->Project = $added[0];$entry->ReportDate = strtotime('-10 day');$entry->Username = 'consultant';$entry2 = new TimeEntryRecord;$entry2->CreatorUserName = "admin";$entry2->Category = $added[4];$entry2->Description = "New work 2";$entry2->Duration = 5.5;$entry2->Project = $added[0];$entry2->ReportDate = strtotime('-4 day');$entry2->Username = 'consultant';return array($entry, $entry2, $added);}function testCreateNewTimeEntry(){$added = $this->createTimeEntry1();$entry = $added[0];$this->entryDao->addNewTimeEntry($entry);$check = $this->entryDao->getTimeEntryByID(1);$this->assertSameEntry($entry, $check);}function testDeleteTimeEntry(){$this->testCreateNewTimeEntry();$this->entryDao->deleteTimeEntry(1);$check = $this->entryDao->getTimeEntryByID(1);$this->assertNull($check);}function testGetEntriesInProject(){$added = $this->createTimeEntries2();$this->entryDao->addNewTimeEntry($added[0]);$this->entryDao->addNewTimeEntry($added[1]);$list = $this->entryDao->getTimeEntriesInProject('consultant', 1);$this->assertEqual(count($list), 2);$this->assertSameEntry($list[0], $added[0]);$this->assertSameEntry($list[1], $added[1]);}function testUpdateEntry(){$added = $this->createTimeEntry1();$entry = $added[0];$this->entryDao->addNewTimeEntry($entry);$check = $this->entryDao->getTimeEntryByID(1);$this->assertSameEntry($entry, $check);$entry->Description = "asdasd";$entry->Duration = 200;$this->entryDao->updateTimeEntry($entry);$verify = $this->entryDao->getTimeEntryByID(1);$this->assertSameEntry($entry, $verify);}}?>