/src/plugins/orangehrmPimPlugin/test/Service/EmpEmergencyContactServiceTest.php

https://github.com/orangehrm/OrangeHRM · PHP · 188 lines · 136 code · 31 blank · 21 comment · 0 complexity · ef4caeb57d7f86ac1a3fa894e5f8b842 MD5 · raw file

  1. <?php
  2. /**
  3. * OrangeHRM is a comprehensive Human Resource Management (HRM) System that captures
  4. * all the essential functionalities required for any enterprise.
  5. * Copyright (C) 2006 OrangeHRM Inc., http://www.orangehrm.com
  6. *
  7. * OrangeHRM is free software; you can redistribute it and/or modify it under the terms of
  8. * the GNU General Public License as published by the Free Software Foundation; either
  9. * version 2 of the License, or (at your option) any later version.
  10. *
  11. * OrangeHRM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
  12. * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. * See the GNU General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU General Public License along with this program;
  16. * if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  17. * Boston, MA 02110-1301, USA
  18. */
  19. namespace OrangeHRM\Tests\Pim\Service;
  20. use OrangeHRM\Config\Config;
  21. use OrangeHRM\Entity\EmpEmergencyContact;
  22. use OrangeHRM\Entity\Employee;
  23. use OrangeHRM\Pim\Dao\EmpEmergencyContactDao;
  24. use OrangeHRM\Pim\Dto\EmpEmergencyContactSearchFilterParams;
  25. use OrangeHRM\Pim\Service\EmpEmergencyContactService;
  26. use OrangeHRM\Tests\Util\TestCase;
  27. use OrangeHRM\Tests\Util\TestDataService;
  28. /**
  29. * @group Pim
  30. * @group Service
  31. */
  32. class EmpEmergencyContactServiceTest extends TestCase
  33. {
  34. private EmpEmergencyContactService $empEmergencyContactService;
  35. protected string $fixture;
  36. protected function setUp(): void
  37. {
  38. $this->empEmergencyContactService = new EmpEmergencyContactService();
  39. $this->fixture = Config::get(Config::PLUGINS_DIR) . '/orangehrmPimPlugin/test/fixtures/EmpEmergencyContactDao.yml';
  40. TestDataService::populate($this->fixture);
  41. }
  42. public function testGetEmployeeEmergencyContactList(): void
  43. {
  44. $empEmergencyContact1 = new EmpEmergencyContact();
  45. $empEmergencyContact1->getDecorator()->setEmployeeByEmpNumber(1);
  46. $empEmergencyContact1->setName('Yasitha');
  47. $empEmergencyContact1->SetRelationship('friend');
  48. $empEmergencyContact1->setHomePhone('0335445678');
  49. $empEmergencyContact1->setMobilePhone("0776734567");
  50. $empEmergencyContact1->setOfficePhone("0113456787");
  51. $empEmergencyContact2 = new EmpEmergencyContact();
  52. $empEmergencyContact2->getDecorator()->setEmployeeByEmpNumber(1);
  53. $empEmergencyContact2->setName('Rashmi');
  54. $empEmergencyContact2->setRelationship('friend');
  55. $empEmergencyContact2->setHomePhone('0335445678');
  56. $empEmergencyContact2->setMobilePhone("0776734567");
  57. $empEmergencyContact2->setOfficePhone("0113456787");
  58. $empEmergencyContactDao = $this->getMockBuilder(EmpEmergencyContactDao::class)->getMock();
  59. $empEmergencyContactDao->expects($this->once())
  60. ->method('getEmployeeEmergencyContactList')
  61. ->with(1)
  62. ->will($this->returnValue([$empEmergencyContact1, $empEmergencyContact2]));
  63. $this->empEmergencyContactService->setEmpEmergencyContactDao($empEmergencyContactDao);
  64. $empEmergencyContacts = $this->empEmergencyContactService->getEmployeeEmergencyContactList(1);
  65. $this->assertCount(2, $empEmergencyContacts);
  66. $this->assertEquals('Yasitha', $empEmergencyContacts[0]->getName());
  67. $this->assertEquals('Rashmi', $empEmergencyContacts[1]->getName());
  68. }
  69. public function testGetEmployeeEmergencyContact(): void
  70. {
  71. $empEmergencyContact1 = new EmpEmergencyContact();
  72. $empEmergencyContact1->getDecorator()->setEmployeeByEmpNumber(1);
  73. $empEmergencyContact1->setName('Yasitha');
  74. $empEmergencyContact1->setRelationship('friend');
  75. $empEmergencyContact1->setHomePhone('0335445678');
  76. $empEmergencyContact1->setMobilePhone("0776734567");
  77. $empEmergencyContact1->setOfficePhone("0113456787");
  78. $empEmergencyContactDao = $this->getMockBuilder(EmpEmergencyContactDao::class)->getMock();
  79. $empEmergencyContactDao->expects($this->once())
  80. ->method('getEmployeeEmergencyContact')
  81. ->with(1, 1)
  82. ->will($this->returnValue($empEmergencyContact1));
  83. $this->empEmergencyContactService->setEmpEmergencyContactDao($empEmergencyContactDao);
  84. $empEmergencyContact = $this->empEmergencyContactService->getEmployeeEmergencyContact(1, 1);
  85. $this->assertEquals('Yasitha', $empEmergencyContact->getName());
  86. }
  87. public function testSaveEmpEmergencyContact(): void
  88. {
  89. $employee = $this->getEntityReference(Employee::class, 1);
  90. $empEmergencyContact = new EmpEmergencyContact();
  91. $empEmergencyContact->setEmployee($employee);
  92. $empEmergencyContact->setName("shashi");
  93. $empEmergencyContact->setRelationship("sister");
  94. $empEmergencyContact->setHomePhone('0335445678');
  95. $empEmergencyContact->setMobilePhone("0776734567");
  96. $empEmergencyContact->setOfficePhone("0113456787");
  97. $empEmergencyContactDao = $this->getMockBuilder(EmpEmergencyContactDao::class)->getMock();
  98. $empEmergencyContactDao->expects($this->once())
  99. ->method('saveEmployeeEmergencyContact')
  100. ->with($empEmergencyContact)
  101. ->will($this->returnValue($empEmergencyContact));
  102. $this->empEmergencyContactService->setEmpEmergencyContactDao($empEmergencyContactDao);
  103. $empEmergencyContactObj = $this->empEmergencyContactService->saveEmpEmergencyContact($empEmergencyContact);
  104. $this->assertEquals("shashi", $empEmergencyContactObj->getName());
  105. $this->assertEquals("sister", $empEmergencyContactObj->getRelationship());
  106. $this->assertEquals("0335445678", $empEmergencyContactObj->getHomePhone());
  107. $this->assertEquals("0776734567", $empEmergencyContactObj->getMobilePhone());
  108. $this->assertEquals("0113456787", $empEmergencyContactObj->getOfficePhone());
  109. $this->assertEquals(1, $empEmergencyContactObj->getEmployee()->getEmpNumber());
  110. $this->assertEquals("Kayla", $empEmergencyContactObj->getEmployee()->getFirstName());
  111. }
  112. public function testDeleteEmployeeEmergencyContacts(): void
  113. {
  114. $empEmergencyContactDao = $this->getMockBuilder(EmpEmergencyContactDao::class)->getMock();
  115. $empEmergencyContactDao->expects($this->once())
  116. ->method('deleteEmployeeEmergencyContacts')
  117. ->with(1, [1, 2])
  118. ->will($this->returnValue(2));
  119. $this->empEmergencyContactService->setEmpEmergencyContactDao($empEmergencyContactDao);
  120. $rows = $this->empEmergencyContactService->deleteEmployeeEmergencyContacts(1, [1, 2]);
  121. $this->assertEquals(2, $rows);
  122. }
  123. public function testSearchEmployeeEmergencyContacts(): void
  124. {
  125. $empEmergencyContact1 = new EmpEmergencyContact();
  126. $empEmergencyContact1->getDecorator()->setEmployeeByEmpNumber(1);
  127. $empEmergencyContact1->setName('Yasitha');
  128. $empEmergencyContact2 = new EmpEmergencyContact();
  129. $empEmergencyContact2->getDecorator()->setEmployeeByEmpNumber(1);
  130. $empEmergencyContact2->setName('Rashmi');
  131. $empEmergencyContactList = [$empEmergencyContact1, $empEmergencyContact2];
  132. $empEmergencyContactSearchParams = new EmpEmergencyContactSearchFilterParams();
  133. $empEmergencyContactSearchParams->setEmpNumber(1);
  134. $empEmergencyContactDao = $this->getMockBuilder(EmpEmergencyContactDao::class)->getMock();
  135. $empEmergencyContactDao->expects($this->once())
  136. ->method('searchEmployeeEmergencyContacts')
  137. ->with($empEmergencyContactSearchParams)
  138. ->will($this->returnValue($empEmergencyContactList));
  139. $this->empEmergencyContactService->setEmpEmergencyContactDao($empEmergencyContactDao);
  140. $result = $this->empEmergencyContactService->searchEmployeeEmergencyContacts($empEmergencyContactSearchParams);
  141. $this->assertCount(2, $result);
  142. $this->assertTrue($result[0] instanceof EmpEmergencyContact);
  143. }
  144. public function testGetSearchEmployeeEmergencyContactsCount(): void
  145. {
  146. $empEmergencyContactSearchParams = new EmpEmergencyContactSearchFilterParams();
  147. $empEmergencyContactSearchParams->setEmpNumber(1);
  148. $empEmergencyContactDao = $this->getMockBuilder(EmpEmergencyContactDao::class)->getMock();
  149. $empEmergencyContactDao->expects($this->once())
  150. ->method('getSearchEmployeeEmergencyContactsCount')
  151. ->with($empEmergencyContactSearchParams)
  152. ->will($this->returnValue(2));
  153. $this->empEmergencyContactService->setEmpEmergencyContactDao($empEmergencyContactDao);
  154. $result = $this->empEmergencyContactService->getSearchEmployeeEmergencyContactsCount($empEmergencyContactSearchParams);
  155. $this->assertEquals(2, $result);
  156. }
  157. }