Merged in cochalo/processmaker (pull request #294)

Correcion de PhpUnits en DEPARTMENTS
This commit is contained in:
erik ao
2014-03-12 16:09:54 -04:00

View File

@@ -16,244 +16,294 @@ if (!class_exists("Propel")) {
*/ */
class DepartmentTest extends \PHPUnit_Framework_TestCase class DepartmentTest extends \PHPUnit_Framework_TestCase
{ {
protected $oDepartment;
/**
* Set class for test
*
* @coversNothing
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function setUp()
{
$this->oDepartment = new \BusinessModel\Department();
return true;
}
/**
* Test error for type in first field the function
*
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The field '$dep_data' is not an array.
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentErrorArray() public function testCreateDepartmentErrorArray()
{ {
try { $this->oDepartment->saveDepartment(true);
$oDepartment = new \BusinessModel\Department();
$oDepartment->saveDepartment(true);
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The field '". '$dep_data' . "' is not an array.");
}
} }
/**
* Test error for type in second field the function
*
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The field '$create' is not a boolean.
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentErrorBoolean() public function testCreateDepartmentErrorBoolean()
{ {
try { $this->oDepartment->saveDepartment(array('1'),array());
$oDepartment = new \BusinessModel\Department();
$oDepartment->saveDepartment(array('1'),array());
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The field '". '$create' . "' is not a boolean.");
}
} }
/**
* Test error for empty array in first field the function
*
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The field '$dep_data' is empty.
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentErrorArrayEmpty() public function testCreateDepartmentErrorArrayEmpty()
{ {
try { $this->oDepartment->saveDepartment(array());
$oDepartment = new \BusinessModel\Department();
$oDepartment->saveDepartment(array());
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The field '". '$dep_data' . "' is empty.");
}
}
public function testCreateDepartmentErrorArrayDepUidExist()
{
try {
$data = array('dep_uid' => 'testUidDepartment');
$oDepartment = new \BusinessModel\Department();
$oDepartment->saveDepartment($data);
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The departament with dep_uid: 'testUidDepartment' does not exist.");
}
} }
/**
* Test error for create department with nonexistent dep_parent
*
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The departament with dep_parent: 'testUidDepartment' does not exist.
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentErrorArrayDepParentExist() public function testCreateDepartmentErrorArrayDepParentExist()
{ {
try { $data = array('dep_parent' => 'testUidDepartment');
$data = array('dep_parent' => 'testUidDepartment'); $this->oDepartment->saveDepartment($data);
$oDepartment = new \BusinessModel\Department();
$oDepartment->saveDepartment($data);
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The departament with dep_parent: 'testUidDepartment' does not exist.");
}
} }
/**
* Test error for create department with nonexistent dep_manager
*
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The user with dep_manager: 'testUidUser' does not exist.
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentErrorArrayDepManagerExist() public function testCreateDepartmentErrorArrayDepManagerExist()
{ {
try { $data = array('dep_manager' => 'testUidUser');
$data = array('dep_manager' => 'testUidUser'); $this->oDepartment->saveDepartment($data);
$oDepartment = new \BusinessModel\Department();
$oDepartment->saveDepartment($data);
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The user with dep_manager: 'testUidUser' does not exist.");
}
} }
/**
* Test error for create department with incorrect dep_status
*
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The departament with dep_status: 'SUPER ACTIVO' is incorrect.
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentErrorArrayDepStatus() public function testCreateDepartmentErrorArrayDepStatus()
{ {
try { $data = array('dep_status' => 'SUPER ACTIVO');
$data = array('dep_status' => 'SUPER ACTIVO'); $this->oDepartment->saveDepartment($data);
$oDepartment = new \BusinessModel\Department();
$oDepartment->saveDepartment($data);
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The departament with dep_status: 'SUPER ACTIVO' is incorrect.");
}
} }
/**
* Test error for create department untitled
*
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The field dep_title is required.
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentErrorArrayDepTitleEmpty() public function testCreateDepartmentErrorArrayDepTitleEmpty()
{ {
try { $data = array('dep_status' => 'ACTIVE');
$data = array('dep_status' => 'ACTIVE'); $this->oDepartment->saveDepartment($data);
$oDepartment = new \BusinessModel\Department();
$oDepartment->saveDepartment($data);
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The field dep_title is required.");
}
} }
public function testCreateDepartmentErrorArrayDepTitleRepeated() /**
* Save department parent
*
* @covers \BusinessModel\Department::saveDepartment
* @return array
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentParent()
{ {
$oDepartment = new \BusinessModel\Department(); $data = array('dep_title' => 'Departamento Padre');
$dep_data = $this->oDepartment->saveDepartment($data);
////////// Create department parent $this->assertTrue(is_array($dep_data));
$dep1 = array ( $this->assertTrue(isset($dep_data['dep_uid']));
'dep_title' => 'departamento padre' $this->assertEquals($dep_data['dep_parent'], '');
); $this->assertEquals($dep_data['dep_title'], 'Departamento Padre');
$arrayDepartments = $oDepartment->saveDepartment($dep1); $this->assertEquals($dep_data['dep_status'], 'ACTIVE');
$this->assertTrue(isset($arrayDepartments['dep_uid'])); $this->assertEquals($dep_data['dep_manager'], '');
$this->assertEquals($dep_data['has_children'], 0);
try { return $dep_data;
$arrayDepartments = $oDepartment->saveDepartment($dep1);
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The departament with dep_title: 'departamento padre' exist.");
}
$oDepartment->deleteDepartment($arrayDepartments['dep_uid']);
} }
public function testCreateDepartmentNormal() /**
* Test error for create department with title exist
*
* @depends testCreateDepartmentParent
* @param array $dep_data, Data for parent department
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The departament with dep_title: 'Departamento Padre' exist.
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentErrorArrayDepTitleRepeated(array $dep_data)
{ {
$oDepartment = new \BusinessModel\Department(); $data = array('dep_title' => 'Departamento Padre');
$this->oDepartment->saveDepartment($data);
////////// Create department parent
$dep1 = array (
'dep_title' => 'departamento padre'
);
$arrayDepartments = $oDepartment->saveDepartment($dep1);
$this->assertTrue(isset($arrayDepartments['dep_uid']));
$this->assertEquals($arrayDepartments['dep_parent'], '');
$this->assertEquals($arrayDepartments['dep_title'], 'departamento padre');
$this->assertEquals($arrayDepartments['dep_status'], 'ACTIVE');
$this->assertEquals($arrayDepartments['dep_manager'], '');
$this->assertEquals($arrayDepartments['has_children'], 0);
$oDepartment->deleteDepartment($arrayDepartments['dep_uid']);
} }
public function testUpdateDepartmentErrorArrayDepTitleRepeated() /**
* Test error for create department untitled
*
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The departament with dep_uid: 'testUidDepartment' does not exist.
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testUpdateDepartmentErrorArrayDepUidExist()
{ {
$oDepartment = new \BusinessModel\Department(); $data = array('dep_uid' => 'testUidDepartment');
$this->oDepartment->saveDepartment($data);
////////// Create department parent
$dep1 = array (
'dep_title' => 'dep1'
);
$dep2 = array (
'dep_title' => 'dep2'
);
$dataDep1 = $oDepartment->saveDepartment($dep1);
$this->assertTrue(isset($dataDep1['dep_uid']));
$dataDep2 = $oDepartment->saveDepartment($dep2);
$this->assertTrue(isset($dataDep2['dep_uid']));
$dep2Update = array (
'dep_uid' => $dataDep2['dep_uid'],
'dep_title' => 'dep1'
);
try {
$oDepartment->saveDepartment($dep2Update, false);
} catch (\Exception $e) {
$res = $e->getMessage();
$this->assertEquals($res, "The departament with dep_title: 'dep1' exist.");
}
$oDepartment->deleteDepartment($dataDep1['dep_uid']);
$oDepartment->deleteDepartment($dataDep2['dep_uid']);
} }
public function testGetDepartments() /**
* Save department child
*
* @depends testCreateDepartmentParent
* @param array $dep_data, Data for parent department
* @covers \BusinessModel\Department::saveDepartment
* @return array
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testCreateDepartmentChild(array $dep_data)
{ {
$oDepartment = new \BusinessModel\Department(); $data = array(
'dep_title' => 'Departamento Child',
////////// Create department parent 'dep_parent' => $dep_data['dep_uid'],
$dep1 = array ( 'dep_status' => 'INACTIVE',
'dep_title' => 'departamento padre'
);
$arrayDepartments = $oDepartment->saveDepartment($dep1);
$this->assertTrue(isset($arrayDepartments['dep_uid']));
$this->assertEquals($arrayDepartments['dep_parent'], '');
$this->assertEquals($arrayDepartments['dep_title'], 'departamento padre');
$this->assertEquals($arrayDepartments['dep_status'], 'ACTIVE');
$this->assertEquals($arrayDepartments['dep_manager'], '');
$this->assertEquals($arrayDepartments['has_children'], 0);
////////// Create department child
$dep1Uid = $arrayDepartments['dep_uid'];
$dep2 = array (
'dep_parent' => $dep1Uid,
'dep_manager' => '00000000000000000000000000000001',
'dep_title' => 'departamento hijo1',
'dep_status' => 'INACTIVE'
);
$arrayDepartments2 = $oDepartment->saveDepartment($dep2);
$this->assertTrue(isset($arrayDepartments2['dep_uid']));
$this->assertEquals($arrayDepartments2['dep_parent'], $dep1Uid);
$this->assertEquals($arrayDepartments2['dep_title'], 'departamento hijo1');
$this->assertEquals($arrayDepartments2['dep_status'], 'INACTIVE');
$this->assertEquals($arrayDepartments2['dep_manager'], '00000000000000000000000000000001');
$this->assertEquals($arrayDepartments2['has_children'], 0);
////////// Update department parent
$depUp1 = array (
'dep_uid' => $dep1Uid,
'dep_title' => 'DepPadre',
'dep_manager' => '00000000000000000000000000000001' 'dep_manager' => '00000000000000000000000000000001'
); );
$oDepartment->saveDepartment($depUp1, false); $child_data = $this->oDepartment->saveDepartment($data);
$this->assertTrue(is_array($child_data));
$this->assertTrue(isset($child_data['dep_uid']));
$this->assertEquals($child_data['dep_parent'], $dep_data['dep_uid']);
$this->assertEquals($child_data['dep_title'], 'Departamento Child');
$this->assertEquals($child_data['dep_status'], 'INACTIVE');
$this->assertEquals($child_data['dep_manager'], '00000000000000000000000000000001');
$this->assertEquals($child_data['has_children'], 0);
return $child_data;
}
$dep2Uid = $arrayDepartments2['dep_uid']; /**
$depUp2 = array ( * Test error for update department with title exist
'dep_uid' => $dep2Uid, *
'dep_title' => 'DepHijo', * @depends testCreateDepartmentParent
'dep_manager' => '', * @depends testCreateDepartmentChild
* @param array $dep_data, Data for parent department
* @param array $child_data, Data for child department
* @covers \BusinessModel\Department::saveDepartment
* @expectedException Exception
* @expectedExceptionMessage The departament with dep_title: 'Departamento Padre' exist.
* @return array
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testUpdateDepartmentErrorArrayDepTitleRepeated(array $dep_data, array $child_data)
{
$dataUpdate = array (
'dep_uid' => $child_data['dep_uid'],
'dep_title' => 'Departamento Padre'
); );
$oDepartment->saveDepartment($depUp2, false); $this->oDepartment->saveDepartment($dataUpdate, false);
}
$oDepartment = new \BusinessModel\Department(); /**
$arrayDepartments = $oDepartment->getDepartments(); * Test get departments array
*
* @depends testCreateDepartmentParent
* @depends testCreateDepartmentChild
* @param array $dep_data, Data for parent department
* @param array $child_data, Data for child department
* @covers \BusinessModel\Department::getDepartments
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testGetDepartments(array $dep_data, array $child_data)
{
$arrayDepartments = $this->oDepartment->getDepartments();
$this->assertTrue(is_array($arrayDepartments)); $this->assertTrue(is_array($arrayDepartments));
$this->assertEquals(count($arrayDepartments), 1); $this->assertEquals(count($arrayDepartments), 1);
$this->assertTrue(is_array($arrayDepartments[0]['dep_children'])); $this->assertTrue(is_array($arrayDepartments[0]['dep_children']));
$this->assertEquals(count($arrayDepartments[0]['dep_children']), 1); $this->assertEquals(count($arrayDepartments[0]['dep_children']), 1);
$dataParent = $arrayDepartments[0];
$this->assertEquals($dep_data['dep_parent'], $dataParent['dep_parent']);
$this->assertEquals($dep_data['dep_title'], $dataParent['dep_title']);
$this->assertEquals($dep_data['dep_status'], $dataParent['dep_status']);
$this->assertEquals($dep_data['dep_manager'], $dataParent['dep_manager']);
$oDepartment = new \BusinessModel\Department(); $dataChild = $arrayDepartments[0]['dep_children'][0];
$arrayDepartments = $oDepartment->getDepartments(); $this->assertEquals($child_data['dep_parent'], $dataChild['dep_parent']);
$depIdPadre = $arrayDepartments[0]['dep_uid']; $this->assertEquals($child_data['dep_title'], $dataChild['dep_title']);
$depIdChild = $arrayDepartments[0]['dep_children'][0]['dep_uid']; $this->assertEquals($child_data['dep_status'], $dataChild['dep_status']);
$oDepartment = new \BusinessModel\Department(); $this->assertEquals($child_data['dep_manager'], $dataChild['dep_manager']);
$dataPadre = $oDepartment->getDepartment($depIdPadre); }
$dataChild = $oDepartment->getDepartment($depIdChild);
$this->assertTrue(is_array($dataPadre)); /**
$this->assertEquals($dataPadre['dep_title'], 'DepPadre'); * Test get department array
$this->assertEquals($dataPadre['dep_manager'], '00000000000000000000000000000001'); *
$this->assertTrue(is_array($dataChild)); * @depends testCreateDepartmentParent
$this->assertEquals($dataChild['dep_title'], 'DepHijo'); * @param array $dep_data, Data for parent department
$this->assertEquals($dataChild['dep_manager'], ''); * @covers \BusinessModel\Department::getDepartment
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testGetDepartment(array $dep_data)
{
$dataParent = $this->oDepartment->getDepartment($dep_data['dep_uid']);
$this->assertTrue(is_array($dataParent));
$oDepartment->deleteDepartment($depIdChild); $this->assertEquals($dep_data['dep_parent'], $dataParent['dep_parent']);
$oDepartment->deleteDepartment($depIdPadre); $this->assertEquals($dep_data['dep_title'], $dataParent['dep_title']);
$this->assertEquals($dep_data['dep_status'], $dataParent['dep_status']);
$this->assertEquals($dep_data['dep_manager'], $dataParent['dep_manager']);
} }
// TODO: Assigned Users to department // TODO: Assigned Users to department
@@ -262,32 +312,43 @@ class DepartmentTest extends \PHPUnit_Framework_TestCase
} }
public function testDeleteDepartmentErrorDepartmentParent() /**
* Test error for delete department with children
*
* @depends testCreateDepartmentParent
* @depends testCreateDepartmentChild
* @param array $dep_data, Data for parent department
* @param array $child_data, Data for child department
* @covers \BusinessModel\Department::deleteDepartment
* @expectedException Exception
* @expectedExceptionMessage Can not delete the department. The department has children
*
* @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
* @copyright Colosa - Bolivia
*/
public function testDeleteDepartmentErrorDepartmentParent(array $dep_data, array $child_data)
{ {
$oDepartment = new \BusinessModel\Department(); $this->oDepartment->deleteDepartment($dep_data['dep_uid']);
}
////////// Create department parent /**
$dep1 = array ( * Test get departments array
'dep_title' => 'dep1' *
); * @depends testCreateDepartmentParent
$dataDep1 = $oDepartment->saveDepartment($dep1); * @depends testCreateDepartmentChild
$this->assertTrue(isset($dataDep1['dep_uid'])); * @param array $dep_data, Data for parent department
$dep2 = array ( * @param array $child_data, Data for child department
'dep_title' => 'dep2', * @covers \BusinessModel\Department::deleteDepartment
'dep_parent' => $dataDep1['dep_uid'] *
); * @author Brayan Pereyra (Cochalo) <brayan@colosa.com>
$dataDep2 = $oDepartment->saveDepartment($dep2); * @copyright Colosa - Bolivia
$this->assertTrue(isset($dataDep2['dep_uid'])); */
public function testDeleteDepartments(array $dep_data, array $child_data)
try { {
$oDepartment->deleteDepartment($dataDep1['dep_uid']); $this->oDepartment->deleteDepartment($child_data['dep_uid']);
} catch (\Exception $e) { $this->oDepartment->deleteDepartment($dep_data['dep_uid']);
$res = $e->getMessage(); $dataParent = $this->oDepartment->getDepartments();
$this->assertEquals($res, "Can not delete the department. The department has children"); $this->assertTrue(empty($dataParent));
}
$oDepartment->deleteDepartment($dataDep2['dep_uid']);
$oDepartment->deleteDepartment($dataDep1['dep_uid']);
} }
} }