Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phprequire_once(dirname(__FILE__).'/BaseTestCase.php');class ProjectDaoTestCase extends BaseTestCase{protected $projectDao;function setup(){parent::setup();$app = Prado::getApplication();$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 createNewProject3(){$project = new ProjectRecord;$project->CreatorUserName = "manager";$project->DateCreated = time();$project->CompletionDate = strtotime('+1 day');$project->Description = 'Test project 3';$project->EstimateDuration = 5.0;$project->ManagerUserName = 'admin';$project->Name = 'Project 3';return $project;}function add3Projects(){$project1 = $this->createNewProject();$project2 = $this->createNewProject2();$project3 = $this->createNewProject3();$this->projectDao->addNewProject($project1);$this->projectDao->addNewProject($project2);$this->projectDao->addNewProject($project3);return array($project1,$project2,$project3);}function testCreateNewProject(){$newProject = $this->createNewProject();$this->projectDao->addNewProject($newProject);$check = $this->projectDao->getProjectByID(1);$this->assertEqual($newProject, $check);}function testDeleteProject(){$newProject = $this->createNewProject();$this->projectDao->addNewProject($newProject);$check = $this->projectDao->getProjectByID(1);$this->assertEqual($newProject, $check);$this->projectDao->deleteProject(1);$verify = $this->projectDao->getProjectByID(1);$this->assertNull($verify);}function testAddUserToProject(){$project = $this->createNewProject();$this->projectDao->addNewProject($project);$this->projectDao->addUserToProject($project->ID, 'admin');$this->projectDao->addUserToProject($project->ID, 'manager');$members = $this->projectDao->getProjectMembers($project->ID);$this->assertEqual(count($members), 2);$this->assertEqual($members[0], 'admin');$this->assertEqual($members[1], 'manager');}function testAddNullUserToProject(){$project = $this->createNewProject();$this->projectDao->addNewProject($project);try{$this->projectDao->addUserToProject($project->ID, 'asd');$this->fail();}catch(TDbException $e){$this->pass();}}function testGetAllProjects(){$added = $this->add3Projects();$projects = $this->projectDao->getAllProjects();$this->assertEqual(count($projects),3);$this->assertEqual($added[0],$projects[0]);$this->assertEqual($added[1],$projects[1]);$this->assertEqual($added[2],$projects[2]);}function testGetProjectsByManagerName(){$added = $this->add3Projects();$projects = $this->projectDao->getProjectsByManagerName('manager');$this->assertEqual(count($projects),2);$this->assertEqual($added[0],$projects[0]);$this->assertEqual($added[1],$projects[1]);}function testGetProjectsByUserName(){$added = $this->add3Projects();$username = 'consultant';$this->projectDao->addUserToProject(1, $username);$this->projectDao->addUserToProject(3, $username);$projects = $this->projectDao->getProjectsByUserName($username);$this->assertEqual(count($projects),2);$this->assertEqual($added[0],$projects[0]);$this->assertEqual($added[2],$projects[1]);}function testRemoveUserFromProject(){$added = $this->add3Projects();$this->projectDao->addUserToProject(1, 'admin');$this->projectDao->addUserToProject(1, 'manager');$this->projectDao->addUserToProject(1, 'consultant');$members = $this->projectDao->getProjectMembers(1);$this->assertEqual(count($members), 3);$this->assertEqual($members[0], 'admin');$this->assertEqual($members[2], 'manager');$this->assertEqual($members[1], 'consultant');$this->projectDao->removeUserFromProject(1,'admin');$list = $this->projectDao->getProjectMembers(1);$this->assertEqual(count($list), 2);$this->assertEqual($list[1], 'manager');$this->assertEqual($list[0], 'consultant');}function testUpdateProject(){$project = $this->createNewProject();$this->projectDao->addNewProject($project);$project->Description = "Project Testing 123";$this->projectDao->updateProject($project);$check = $this->projectDao->getProjectByID(1);$this->assertEqual($check, $project);}}?>