/lib/models/eimadmin/export/CustomizableCSVExportTest.php
PHP | 236 lines | 147 code | 40 blank | 49 comment | 4 complexity | 81438f0c899711874d442b4a0fc100f7 MD5 | raw file
Possible License(s): CC-BY-SA-3.0, AGPL-3.0, BSD-3-Clause, AGPL-1.0, GPL-2.0, LGPL-2.1, LGPL-3.0
- <?php
- // Call CustomizableCSVExportTest::main() if this source file is executed directly.
- if (!defined("PHPUnit_MAIN_METHOD")) {
- define("PHPUnit_MAIN_METHOD", "CustomizableCSVExportTest::main");
- }
- require_once "PHPUnit/Framework/TestCase.php";
- require_once "PHPUnit/Framework/TestSuite.php";
- require_once "testConf.php";
- require_once 'CustomizableCSVExport.php';
- require_once ROOT_PATH . '/lib/common/LocaleUtil.php';
- require_once ROOT_PATH . '/lib/models/hrfunct/EmpDirectDebit.php';
- require_once ROOT_PATH . '/lib/models/eimadmin/encryption/KeyHandler.php';
- /**
- * Test class for CustomizableCSVExport.
- * Generated by PHPUnit_Util_Skeleton on 2008-01-09 at 11:53:31.
- */
- class CustomizableCSVExportTest extends PHPUnit_Framework_TestCase {
- /**
- * 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("CustomizableCSVExportTest");
- $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);
- $this->_truncateTables();
- // insert some test data
- $this->_runQuery("INSERT INTO hs_hr_custom_export(export_id, name, fields, headings) VALUES (1, 'Export 1', 'empId,lastName,firstName,middleName,street1,street2,city', '')");
- $this->_runQuery("INSERT INTO hs_hr_custom_export(export_id, name, fields, headings) VALUES (2, 'Export 2', 'empId,lastName,firstName,city', 'Employee Id,Last Name,First Name,City')");
- $this->_runQuery("INSERT INTO hs_hr_custom_export(export_id, name, fields, headings) VALUES (3, 'Export 3', 'empId,street1,street2,city', 'Employee Id,Address1, Address2, City')");
- // insert some employee data
- $sql = "INSERT INTO hs_hr_employee" .
- "(emp_number, employee_id, emp_lastname, emp_firstname, emp_middle_name, " .
- "emp_nick_name, emp_smoker, ethnic_race_code, emp_birthday, nation_code, " .
- "emp_gender, emp_marital_status, emp_ssn_num, emp_sin_num, emp_other_id, " .
- "emp_dri_lice_num, emp_dri_lice_exp_date, emp_military_service, emp_status, " .
- "job_title_code, eeo_cat_code, work_station, " .
- "emp_street1, emp_street2, city_code, coun_code, provin_code, emp_zipcode, " .
- "emp_hm_telephone, emp_mobile, emp_work_telephone, emp_work_email, " .
- "sal_grd_code, joined_date, emp_oth_email, " .
- "custom1, custom2, custom3, custom4, custom5, " .
- "custom6, custom7, custom8, custom9, custom10) VALUES (" .
- "'10', 'E1921A', 'Karunadasa', 'Kamal', 'K', " .
- "NULL, NULL, NULL, '1974-11-20', NULL, " .
- "1, NULL, '987654320', '', '', " .
- "null, NULL, NULL, 'EST001', " .
- "NULL, NULL, NULL, " .
- "'111 Main Street', 'SUITE A29', 'Houston', 'US', 'TX', '77845', " .
- "'', '', '', NULL, " .
- "NULL, '1997-12-11', NULL, " .
- "'c1', 'c2', 'c3', 'c4', 'c5'," .
- "'c6', 'c7', 'c8', 'c9', 'c10'" .
- ")";
- if (KeyHandler::keyExists()) {
- $key = KeyHandler::readKey();
- $sql = str_replace("'987654320'", "AES_ENCRYPT('987654320', '$key')", $sql);
- }
- $this->_runQuery($sql);
- $sql = "INSERT into hs_hr_emp_us_tax(emp_number, tax_federal_status, tax_federal_exceptions, " .
- "tax_state, tax_state_status, tax_state_exceptions, tax_unemp_state,tax_work_state) VALUES (" .
- "10, 'NRA', 2, 'MD', 'NA', 3, 'VA', 'AZ')";
- $this->_runQuery($sql);
- // Add direct debit information
- $dd = new EmpDirectDebit();
- $dd->setEmpNumber(10);
- $dd->setRoutingNumber(11111);
- $dd->setAccount('AC 1');
- $dd->setAmount(121);
- $dd->setAccountType('CHECKING');
- $dd->setTransactionType('BLANK');
- $this->assertTrue($dd->add(), mysql_error());
- $dd = new EmpDirectDebit();
- $dd->setEmpNumber(10);
- $dd->setRoutingNumber(22222);
- $dd->setAccount('AC #2');
- $dd->setAmount(23);
- $dd->setAccountType('SAVINGS');
- $dd->setTransactionType('FLATMINUS');
- $this->assertTrue($dd->add(), mysql_error());
- }
- /**
- * Tears down the fixture, for example, close a network connection.
- * This method is called after a test is executed.
- *
- * @access protected
- */
- protected function tearDown() {
- $this->_truncateTables();
- }
- /**
- * Test the constructor
- */
- public function testConstructor() {
- // check with invalid id
- try {
- $export = new CustomizableCSVExport(4);
- $this->fail("Exception expected");
- } catch (Exception $e) {
- }
- // check with valid id
- $export = new CustomizableCSVExport(2);
- }
- /**
- * Test the getName() function
- */
- public function testGetName() {
- $export = new CustomizableCSVExport(2);
- $this->assertEquals('Export 2', $export->getName());
- $export = new CustomizableCSVExport(1);
- $this->assertEquals('Export 1', $export->getName());
- }
- /**
- * Test the getHeader() function
- */
- public function testGetHeader() {
- // Export with header not defined, should default to assigned field names
- $export = new CustomizableCSVExport(1);
- $this->assertEquals('empId,lastName,firstName,middleName,street1,street2,city', $export->getHeader());
- // Export with header defined
- $export = new CustomizableCSVExport(2);
- $this->assertEquals('Employee Id,Last Name,First Name,City', $export->getHeader());
- $export = new CustomizableCSVExport(3);
- $this->assertEquals('Employee Id,Address1, Address2, City', $export->getHeader());
- }
- /**
- * Test the getCSVData() method
- */
- public function testGetCSVData() {
- // Export empId,lastName,firstName,middleName,street1,street2,city
- $export = new CustomizableCSVExport(1);
- $csv = $export->getCSVData();
- $expected = 'E1921A,Karunadasa,Kamal,K,111 Main Street,SUITE A29,Houston' . "\n";
- $this->assertEquals($expected, $csv);
- // In a different order
- $this->_runQuery("UPDATE hs_hr_custom_export SET fields = 'street1,lastName,empId,firstName,street2,middleName,city' WHERE export_id = 1");
- $export = new CustomizableCSVExport(1);
- $csv = $export->getCSVData();
- $expected = '111 Main Street,Karunadasa,E1921A,Kamal,SUITE A29,K,Houston' . "\n";
- $this->assertEquals($expected, $csv);
- $this->_runQuery("UPDATE hs_hr_custom_export SET fields = 'salary,payFrequency,street1,lastName,firstName,street2,middleName,city,location' WHERE export_id = 1");
- $export = new CustomizableCSVExport(1);
- $csv = $export->getCSVData();
- $expected = ',,111 Main Street,Karunadasa,Kamal,SUITE A29,K,Houston,' . "\n";
- $this->assertEquals($expected, $csv);
- // All available fields
- $available = "empId,lastName,firstName,middleName,street1,street2,city," .
- "state,zip,gender,birthDate,ssn,empStatus,joinedDate,workStation,location,custom1,custom2," .
- "custom3,custom4,custom5,custom6,custom7,custom8,custom9,custom10," .
- "workState,salary,payFrequency," .
- "FITWStatus,FITWExemptions,SITWState,SITWStatus,SITWExemptions," .
- "SUIState,DD1Routing,DD1Account,DD1Amount,".
- "DD1AmountCode,DD1Checking,DD2Routing,".
- "DD2Account,DD2Amount,DD2AmountCode,DD2Checking";
- $this->_runQuery("UPDATE hs_hr_custom_export SET headings = '', fields = '{$available}' WHERE export_id = 2");
- $joinedDate = LocaleUtil::getInstance()->formatDate('1997-12-11');
- $expected = "E1921A,Karunadasa,Kamal,K,111 Main Street,SUITE A29,Houston," .
- "TX,77845,M,1974-11-20,987654320,EST001,{$joinedDate},,,c1,c2," .
- "c3,c4,c5,c6,c7,c8,c9,c10," .
- "AZ,,," .
- "NRA,2,MD,NA,3," .
- "VA,11111,AC 1,121.00,".
- "Blank,Y,22222,".
- "AC #2,23.00,Flat-,\n";
- $export = new CustomizableCSVExport(2);
- $csv = $export->getCSVData();
- $this->assertEquals($expected, $csv);
- }
- /**
- * Run given sql query
- */
- private function _runQuery($sql) {
- $this->assertTrue(mysql_query($sql), mysql_error());
- }
- private function _truncateTables() {
- $this->_runQuery("TRUNCATE TABLE hs_hr_custom_export");
- $this->_runQuery("TRUNCATE TABLE `hs_hr_employee`");
- }
- }
- // Call CustomizableCSVExportTest::main() if this source file is executed directly.
- if (PHPUnit_MAIN_METHOD == "CustomizableCSVExportTest::main") {
- CustomizableCSVExportTest::main();
- }
- ?>