⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 projectadmingatewaytest.php

📁 国外的人才求职招聘最新版
💻 PHP
📖 第 1 页 / 共 2 页
字号:
		$this->_deleteAllAdmins();		$this->_insertAdmins();		// Remove two admins, one valid, the other invalid		$this->assertEquals(1, $gw->removeAdmins($projectId = 1, $empList = array(2, 12)));		$this->assertEquals(2, $this->_countAdmins());		$this->assertEquals(1, $this->_countAdmins("emp_number = 2"));		$this->_deleteAllAdmins();		$this->_insertAdmins();		// Remove two admins, both valid admins but invalid project Id		$this->assertEquals(0, $gw->removeAdmins($projectId = 14, $empList = array(2, 1)));		$this->assertEquals(3, $this->_countAdmins());        $this->assertTrue(mysql_query("INSERT INTO hs_hr_project_admin(emp_number, project_id) " .        			"VALUES(3, 1)"));		$this->assertEquals(1, mysql_affected_rows());		// Remove three admins, both valid admins		$this->assertEquals(3, $gw->removeAdmins($projectId = 1, $empList = array(1, 2, 3)));		$this->assertEquals(1, $this->_countAdmins());		$this->assertEquals(1, $this->_countAdmins("emp_number = 2 AND project_id = 2"));    }    /**     * Tests getAdmins() method.     */    public function testGetAdmins() {		$gw = new ProjectAdminGateway();		// Verify that invalid project ids  throw exceptions		try {			$gw->getAdmins("");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected		}		try {			$gw->getAdmins("xier");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected		}		try {			$gw->getAdmins(null);			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected		}		// Get admins for invalid project		$list = $gw->getAdmins(12);		$this->assertTrue(is_array($list));		$this->assertEquals(0, count($list));        mysql_query("INSERT INTO hs_hr_project(project_id, customer_id, name, description, deleted) " .        			"VALUES(21, 1, 'Test project 1', 'a test proj 1', 0)");		// Get admins for valid project with no admins		$list = $gw->getAdmins(21);		$this->assertTrue(is_array($list));		$this->assertEquals(0, count($list));		$this->_deleteAllAdmins();		$this->_insertAdmins();		// Get admins for valid project with 1 admin		$list = $gw->getAdmins(2);		$this->assertTrue(is_array($list));		$this->assertEquals(1, count($list));		$admin = $list[0];		$this->assertTrue($admin instanceof ProjectAdmin);		$this->assertEquals(2, $admin->getEmpNumber());		$this->assertEquals('Aruna', $admin->getFirstName());		$this->assertEquals('Jayasinghe', $admin->getLastName());		// Get admin for valid project with 2 admins		$list = $gw->getAdmins(1);		$this->assertTrue(is_array($list));		$this->assertEquals(2, count($list));		$validResults = array( 1 => array('Saman', 'Rajasinghe'), 2 => array('Aruna', 'Jayasinghe'));		foreach ($list as $admin) {			$empNo = $admin->getEmpNumber();			$lastName = $admin->getLastName();;			$this->assertTrue(array_key_exists($empNo, $validResults));			$this->assertEquals($validResults[$empNo][0], $admin->getFirstName());			$this->assertEquals($validResults[$empNo][1], $admin->getLastName());			unset($validResults[$empNo]);		}    }    /**     * Tests the isAdmin() method.     */    public function testIsAdmin() {		$gw = new ProjectAdminGateway();		// Verify that invalid project id's emp numbers throw exceptions		try {			$gw->isAdmin($empNumber = 12, $projectId = "");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected.		}		try {			$gw->isAdmin($empNumber = 12, $projectId = "test");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected.		}		try {			$gw->isAdmin($empNumber = "", $projectId = 1);			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected.		}		try {			$gw->isAdmin($empNumber = "xyz", $projectId = 1);			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected.		}		try {			$gw->isAdmin($empNumber = 1, $projectId = null);		} catch (ProjectAdminException $e) {			$this->fail("null project id should be allowed.");		}		// valid employee but not admin    	$this->assertFalse($gw->isAdmin($empNumber = 1, $projectId = 1));    	$this->assertFalse($gw->isAdmin($empNumber = 1, $projectId = 11));    	$this->assertFalse($gw->isAdmin($empNumber = 1));    	// invalid emp number    	$this->assertFalse($gw->isAdmin($empNumber = 13, $projectId = 1));    	$this->assertFalse($gw->isAdmin($empNumber = 188, $projectId = 11));    	$this->assertFalse($gw->isAdmin($empNumber = 15));		$this->_insertAdmins();		// valid admin, correct project.    	$this->assertTrue($gw->isAdmin($empNumber = 1, $projectId = 1));		// valid admin, without giving a project		$this->assertTrue($gw->isAdmin($empNumber = 1));		// valid admin, incorrect/invalid project.    	$this->assertFalse($gw->isAdmin($empNumber = 1, $projectId = 2));    	$this->assertFalse($gw->isAdmin($empNumber = 1, $projectId = 12));    	// admin with multiple projects    	$this->assertTrue($gw->isAdmin($empNumber = 2, $projectId = 1));    	$this->assertTrue($gw->isAdmin($empNumber = 2, $projectId = 2));    	$this->assertTrue($gw->isAdmin($empNumber = 2));    	$this->assertFalse($gw->isAdmin($empNumber = 2, $projectId = 21));    	// Deleted projects not considered when project Id not given        $this->assertTrue(mysql_query("UPDATE hs_hr_project SET deleted = 1 WHERE project_id = 1"));		$this->assertEquals(1, mysql_affected_rows());    	$this->assertFalse($gw->isAdmin($empNumber = 1));    	$this->assertTrue($gw->isAdmin($empNumber = 1, $projectId = 1));        $this->assertTrue(mysql_query("UPDATE hs_hr_project SET deleted = 1 WHERE project_id = 2"));		$this->assertEquals(1, mysql_affected_rows());    	$this->assertFalse($gw->isAdmin($empNumber = 2));    	$this->assertTrue($gw->isAdmin($empNumber = 2, $projectId = 2));    	$this->assertTrue($gw->isAdmin($empNumber = 2, $projectId = 1));    }    /**     * Test for getProjectsForAdmin() method.     */    public function testGetProjectsForAdmin() {		$gw = new ProjectAdminGateway();		// Verify that invalid emp numbers throw exceptions		try {			$gw->getProjectsForAdmin("");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected.		}		try {			$gw->getProjectsForAdmin("aer");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected.		}		try {			$gw->getProjectsForAdmin(null);			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected.		}		// invalid emp number		$list = $gw->getProjectsForAdmin(100);		$this->assertTrue(is_array($list));		$this->assertEquals(0, count($list));		// valid emp, not an admin		$list = $gw->getProjectsForAdmin(1);		$this->assertTrue(is_array($list));		$this->assertEquals(0, count($list));		$this->_insertAdmins();		// valid emp, admin of one project		$list = $gw->getProjectsForAdmin(1);		$this->assertTrue(is_array($list));		$this->assertEquals(1, count($list));		$proj = $list[0];		$this->assertTrue($proj instanceof Projects);		$this->assertEquals(1, $proj->getProjectId());		$this->assertEquals('Test project 1', $proj->getProjectName());		// valid emp, admin of multiple projects		$list = $gw->getProjectsForAdmin(2);		$this->assertTrue(is_array($list));		$this->assertEquals(2, count($list));		$validResults = array( 1 => 'Test project 1', 2 => 'Test project 2');		foreach ($list as $proj) {			$this->assertTrue($proj instanceof Projects);			$id = $proj->getProjectId();			$name = $proj->getProjectName();			$this->assertTrue(array_key_exists($id, $validResults));			$this->assertEquals($name, $validResults[$id]);			unset($validResults[$id]);		}		// Verify that deleted projects are not returned by default        $this->assertTrue(mysql_query("UPDATE hs_hr_project SET deleted = 1 WHERE project_id = 1"));		$this->assertEquals(1, mysql_affected_rows());		$list = $gw->getProjectsForAdmin(1);		$this->assertTrue(is_array($list));		$this->assertEquals(0, count($list));		// deleted projects are returned when requested		$list = $gw->getProjectsForAdmin(1, true);		$this->assertTrue(is_array($list));		$this->assertEquals(1, count($list));		$proj = $list[0];		$this->assertTrue($proj instanceof Projects);		$this->assertEquals(1, $proj->getProjectId());		$this->assertEquals('Test project 1', $proj->getProjectName());    }	public function errorHandler($errlevel, $errstr, $errfile='', $errline='', $errcontext=''){		$this->errorLevel = $errlevel;		$this->errorStr = $errstr;	}	private function _clearError() {		$this->errorLevel = null;		$this->errorStr = null;	}    /**     * Counts project admins (with optional condition)     *     * @param  string $where where clause     * @return int number of rows     */    private function _countAdmins($where = null) {    	$sql = "SELECT COUNT(*) FROM hs_hr_project_admin";    	if (!empty($where)) {    		$sql .= " WHERE " . $where;    	}		$result = mysql_query($sql);		$row = mysql_fetch_array($result, MYSQL_NUM);        $count = $row[0];		return $count;    }    /**     * Inserts some admins for use in the tests     */    private function _insertAdmins() {        $this->assertTrue(mysql_query("INSERT INTO hs_hr_project_admin(emp_number, project_id) " .        			"VALUES(1, 1)"));		$this->assertEquals(1, mysql_affected_rows());        $this->assertTrue(mysql_query("INSERT INTO hs_hr_project_admin(emp_number, project_id) " .        			"VALUES(2, 1)"));		$this->assertEquals(1, mysql_affected_rows());        $this->assertTrue(mysql_query("INSERT INTO hs_hr_project_admin(emp_number, project_id) " .        			"VALUES(2, 2)"));		$this->assertEquals(1, mysql_affected_rows());    }    /**     * Clears project admin table     */     private function _deleteAllAdmins() {     	mysql_query("TRUNCATE TABLE hs_hr_project_admin");     }}// Call ProjectAdminGatewayTest::main() if this source file is executed directly.if (PHPUnit_MAIN_METHOD == "ProjectAdminGatewayTest::main") {    ProjectAdminGatewayTest::main();}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -