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

📄 projectadmingatewaytest.php

📁 国外的人才求职招聘最新版
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/** * OrangeHRM is a comprehensive Human Resource Management (HRM) System that captures * all the essential functionalities required for any enterprise. * Copyright (C) 2006 OrangeHRM Inc., http://www.orangehrm.com * * OrangeHRM is free software; you can redistribute it and/or modify it under the terms of * the GNU General Public License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * OrangeHRM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with this program; * if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA  02110-1301, USA * */// Call ProjectAdminGatewayTest::main() if this source file is executed directly.if (!defined("PHPUnit_MAIN_METHOD")) {    define("PHPUnit_MAIN_METHOD", "ProjectAdminGatewayTest::main");}require_once "PHPUnit/Framework/TestCase.php";require_once "PHPUnit/Framework/TestSuite.php";require_once "testConf.php";require_once ROOT_PATH."/lib/confs/Conf.php";require_once ROOT_PATH . '/lib/exception/ExceptionHandler.php';require_once ROOT_PATH . "/lib/models/eimadmin/Projects.php";require_once ROOT_PATH . "/lib/models/eimadmin/ProjectAdminGateway.php";/** * Test class for ProjectAdminGateway. * Generated by PHPUnit_Util_Skeleton on 2007-07-11 at 17:15:40. */class ProjectAdminGatewayTest extends PHPUnit_Framework_TestCase {	private $errorLevel;	private $errorStr;    /**     * Runs the test methods of this class.     *     * @access public     * @static     */    public static function main() {        require_once "PHPUnit/TextUI/TestRunner.php";        $suite  = new PHPUnit_Framework_TestSuite("ProjectAdminGatewayTest");        $result = PHPUnit_TextUI_TestRunner::run($suite);    }    /**     * Sets up the fixture, for example, open a network connection.     * This method is called before a test is executed.     *     * @access protected     */    protected function setUp() {    	$conf = new Conf();    	$this->connection = mysql_connect($conf->dbhost.":".$conf->dbport, $conf->dbuser, $conf->dbpass);        mysql_select_db($conf->dbname);		mysql_query("TRUNCATE TABLE `hs_hr_project`", $this->connection);        mysql_query("TRUNCATE TABLE `hs_hr_project_admin`", $this->connection);		mysql_query("TRUNCATE TABLE `hs_hr_customer`", $this->connection);        mysql_query("TRUNCATE TABLE `hs_hr_employee`", $this->connection);		// Insert a project and customer and employees for use in the test        mysql_query("INSERT INTO hs_hr_customer(customer_id, name, description, deleted) " .        			"VALUES(1, 'Test customer', 'description', 0)");        mysql_query("INSERT INTO hs_hr_project(project_id, customer_id, name, description, deleted) " .        			"VALUES(1, 1, 'Test project 1', 'a test proj 1', 0)");        mysql_query("INSERT INTO hs_hr_project(project_id, customer_id, name, description, deleted) " .        			"VALUES(2, 1, 'Test project 2', 'a test proj 2', 0)");        mysql_query("INSERT INTO hs_hr_employee(emp_number, employee_id, emp_lastname, emp_firstname, emp_middle_name) " .        			"VALUES(1, '0011', 'Rajasinghe', 'Saman', 'Marlon')");        mysql_query("INSERT INTO hs_hr_employee(emp_number, employee_id, emp_lastname, emp_firstname, emp_middle_name) " .        			"VALUES(2, '0022', 'Jayasinghe', 'Aruna', 'Shantha')");        mysql_query("INSERT INTO hs_hr_employee(emp_number, employee_id, emp_lastname, emp_firstname, emp_middle_name) " .        			"VALUES(3, '0034', 'Ranasinghe', 'Nimal', 'Bandara')");    }    /**     * Tears down the fixture, for example, close a network connection.     * This method is called after a test is executed.     *     * @access protected     */    protected function tearDown() {		mysql_query("TRUNCATE TABLE `hs_hr_project`", $this->connection);        mysql_query("TRUNCATE TABLE `hs_hr_project_admin`", $this->connection);		mysql_query("TRUNCATE TABLE `hs_hr_customer`", $this->connection);        mysql_query("TRUNCATE TABLE `hs_hr_employee`", $this->connection);    }    /**     * @todo Implement testAddAdmin().     */    public function testAddAdmin() {		$gw = new ProjectAdminGateway();		// Verify that invalid project id's emp numbers throw exceptions		try {			$gw->addAdmin($projectId = "", $empNumber = 12);			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			$this->assertEquals(0, $this->_countAdmins(), "No rows should be inserted");		}		try {			$gw->addAdmin($projectId = "test", $empNumber = 12);			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			$this->assertEquals(0, $this->_countAdmins(), "No rows should be inserted");		}		try {			$gw->addAdmin($projectId = 1, $empNumber = "");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			$this->assertEquals(0, $this->_countAdmins(), "No rows should be inserted");		}		try {			$gw->addAdmin($projectId = 1, $empNumber = "xyz");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			$this->assertEquals(0, $this->_countAdmins(), "No rows should be inserted");		}		// Verify that add using non existent projects and employee id's throws an error		$this->_clearError();		set_error_handler(array($this, 'errorHandler'));		$this->assertFalse($gw->addAdmin($projectId = 11, $empNumber = 12));		restore_error_handler();		$this->assertNotNull($this->errorLevel);		$this->assertEquals(0, $this->_countAdmins());		// valid project, invalid employee		$this->_clearError();		set_error_handler(array($this, 'errorHandler'));		$this->assertFalse($gw->addAdmin($projectId = 1, $empNumber = 4));		restore_error_handler();		$this->assertNotNull($this->errorLevel);		$this->assertEquals(0, $this->_countAdmins());		// invalid project, valid employee		$this->_clearError();		set_error_handler(array($this, 'errorHandler'));		$this->assertFalse($gw->addAdmin($projectId = 12, $empNumber = 1));		restore_error_handler();		$this->assertNotNull($this->errorLevel);		$this->assertEquals(0, $this->_countAdmins());		// valid admin		$gw->addAdmin($projectId = 1, $empNumber = 2);		$this->assertEquals(1, $this->_countAdmins());		$this->assertEquals(1, $this->_countAdmins("project_id = 1 AND emp_number = 2"));		// adding the same admin again should not change anything		$gw->addAdmin($projectId = 1, $empNumber = 2);		$this->assertEquals(1, $this->_countAdmins());		$this->assertEquals(1, $this->_countAdmins("project_id = 1 AND emp_number = 2"));		// Add the same employee as admin to a different project		$gw->addAdmin($projectId = 2, $empNumber = 2);		$this->assertEquals(2, $this->_countAdmins());		$this->assertEquals(2, $this->_countAdmins("emp_number = 2"));		$this->assertEquals(1, $this->_countAdmins("project_id = 2 AND emp_number = 2"));		$this->assertEquals(1, $this->_countAdmins("project_id = 2 AND emp_number = 2"));    }    /**     * Test removeAdmin() method     */    public function testRemoveAdmin() {		$gw = new ProjectAdminGateway();		$this->_insertAdmins();		// Verify that invalid project id's emp numbers throw exceptions		try {			$gw->removeAdmin($projectId = "", $empNumber = 12);			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			$this->assertEquals(3, $this->_countAdmins(), "No rows should be removed");		}		try {			$gw->removeAdmin($projectId = "test", $empNumber = 12);			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			$this->assertEquals(3, $this->_countAdmins(), "No rows should be removed");		}		try {			$gw->removeAdmin($projectId = 1, $empNumber = "");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			$this->assertEquals(3, $this->_countAdmins(), "No rows should be removed");		}		try {			$gw->removeAdmin($projectId = 1, $empNumber = "xyz");			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			$this->assertEquals(3, $this->_countAdmins(), "No rows should be removed");		}    	// empNumber invalid, project invalid		$this->assertFalse($gw->removeAdmin($projectId = 111, $empNumber = 23));		$this->assertEquals(3, $this->_countAdmins());    	// empNumber invalid, project valid		$this->assertFalse($gw->removeAdmin($projectId = 2, $empNumber = 9));		$this->assertEquals(3, $this->_countAdmins());    	// empNumber valid but not admin, project invalid		$this->assertFalse($gw->removeAdmin($projectId = 13, $empNumber = 3));		$this->assertEquals(3, $this->_countAdmins());    	// empNumber valid but not admin, project valid		$this->assertFalse($gw->removeAdmin($projectId = 1, $empNumber = 3));		$this->assertEquals(3, $this->_countAdmins());    	// empNumber valid, admin for different project.		$this->assertFalse($gw->removeAdmin($projectId = 2, $empNumber = 1));		$this->assertEquals(3, $this->_countAdmins());    	// empNumber valid, admin for given project.		$this->assertTrue($gw->removeAdmin($projectId = 1, $empNumber = 1));		$this->assertEquals(2, $this->_countAdmins());		$this->assertEquals(0, $this->_countAdmins("emp_number = 1"));    	// attempt remove again.		$this->assertFalse($gw->removeAdmin($projectId = 1, $empNumber = 1));		$this->assertEquals(2, $this->_countAdmins());		// Remove admin with multiple projects from one project		$this->assertTrue($gw->removeAdmin($projectId = 1, $empNumber = 2));		$this->assertEquals(1, $this->_countAdmins());		$this->assertEquals(1, $this->_countAdmins("emp_number = 2 AND project_id = 2"));    }    /**     * Tests removeAdmins() method.     */    public function testRemoveAdmins() {		$gw = new ProjectAdminGateway();		$this->_insertAdmins();		// Verify that invalid project id's emp numbers throw exceptions		try {			$gw->removeAdmins($projectId = "", array(12));			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected		}		try {			$gw->removeAdmins($projectId = "test", array(12));			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected		}		try {			$gw->removeAdmins($projectId = null, array(12));			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected		}		try {			$gw->removeAdmins($projectId = 1, array(12, ""));			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected		}		try {			$gw->removeAdmins($projectId = 1, array(1, "xyz"));			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected		}		try {			$gw->removeAdmins($projectId = 1, null);			$this->fail("Exception not thrown");		} catch (ProjectAdminException $e) {			// Expected		}		// Pass empty array, valid project Id		$this->assertEquals(0, $gw->removeAdmins($projectId = 1, $empList = array()));		$this->assertEquals(3, $this->_countAdmins());		// Remove one admin, invalid empNumber		$this->assertEquals(0, $gw->removeAdmins($projectId = 1, $empList = array(12)));		$this->assertEquals(3, $this->_countAdmins());		// Remove one admin, valid empNumber but not admin		$this->assertEquals(0, $gw->removeAdmins($projectId = 1, $empList = array(3)));		$this->assertEquals(3, $this->_countAdmins());		// Remove one admin, valid empNumber and admin but wrong project		$this->assertEquals(0, $gw->removeAdmins($projectId = 2, $empList = array(1)));		$this->assertEquals(3, $this->_countAdmins());		// Remove one admin, valid empNumber and admin for given project		$this->assertEquals(1, $gw->removeAdmins($projectId = 1, $empList = array(1)));		$this->assertEquals(2, $this->_countAdmins());		$this->assertEquals(0, $this->_countAdmins("emp_number = 1"));

⌨️ 快捷键说明

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