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 20 21/** 22 * Test classes 23 * 24 * @group API 25 */ 26 27use Orangehrm\Rest\Api\Leave\LeaveEntitlementAPI; 28use Orangehrm\Rest\Api\Leave\Entity\LeaveEntitlement; 29use Orangehrm\Rest\Http\Request; 30use Orangehrm\Rest\Http\Response; 31 32class ApiLeaveEntitlementAPITest extends PHPUnit_Framework_TestCase 33{ 34 private $entitlementApi; 35 36 /** 37 * Set up method 38 */ 39 protected function setUp() 40 { 41 $sfEvent = new sfEventDispatcher(); 42 $sfRequest = new sfWebRequest($sfEvent); 43 $request = new Request($sfRequest); 44 $this->entitlementApi = new LeaveEntitlementAPI($request); 45 46 } 47 48 public function testSaveEntitlement() 49 { 50 $requestParams = $this->getMockBuilder('\Orangehrm\Rest\Http\RequestParams') 51 ->disableOriginalConstructor() 52 ->setMethods(array('getUrlParam')) 53 ->getMock(); 54 $requestParams->expects($this->any()) 55 ->method('getUrlParam') 56 ->with('id') 57 ->will($this->returnValue(1)); 58 59 $sfEvent = new sfEventDispatcher(); 60 $sfRequest = new sfWebRequest($sfEvent); 61 $request = new Request($sfRequest); 62 63 $leaveEntitlement = new \LeaveEntitlement(); 64 $leaveEntitlement->setLeaveTypeId('1'); 65 $leaveEntitlement->setEmpNumber(32); 66 $leaveEntitlement->setNoOfDays(14); 67 $leaveEntitlement->setFromDate('2016-04-20'); 68 $leaveEntitlement->setToDate('2017-04-20'); 69 $leaveEntitlement->setEntitlementType(1); 70 71 $entitlementsCollection = new Doctrine_Collection('LeaveEntitlement'); 72 $entitlementsCollection[] = $leaveEntitlement; 73 74 $entitlementApi = $this->getMockBuilder('Orangehrm\Rest\Api\Leave\LeaveEntitlementAPI') 75 ->setMethods(array('createEntitlement')) 76 ->setConstructorArgs(array($request)) 77 ->getMock(); 78 $entitlementApi->expects($this->once()) 79 ->method('createEntitlement') 80 ->will($this->returnValue($leaveEntitlement)); 81 82 83 $entitlementApi->setRequestParams($requestParams); 84 85 $entitlementService = $this->getMockBuilder('LeaveEntitlementService')->getMock(); 86 $entitlementService->expects($this->any()) 87 ->method('saveLeaveEntitlement') 88 ->with($leaveEntitlement) 89 ->will($this->returnValue($entitlementsCollection)); 90 91 $entitlementApi->setLeaveEntitlementService($entitlementService); 92 $ResponseReturned = $entitlementApi->saveEntitlement($leaveEntitlement); 93 94 $success = new Response(array('success' => 'Successfully Saved'), array()); 95 96 $this->assertEquals($success, $ResponseReturned); 97 98 } 99 100 public function testGetLeaveEntitlements() 101 { 102 $requestParams = $this->getMockBuilder('\Orangehrm\Rest\Http\RequestParams') 103 ->disableOriginalConstructor() 104 ->setMethods(array('getUrlParam')) 105 ->getMock(); 106 $requestParams->expects($this->any()) 107 ->method('getUrlParam') 108 ->with('id') 109 ->will($this->returnValue(1)); 110 111 $sfEvent = new sfEventDispatcher(); 112 $sfRequest = new sfWebRequest($sfEvent); 113 $request = new Request($sfRequest); 114 115 $leaveEntitlement = new \LeaveEntitlement(); 116 $leaveEntitlement->setLeaveTypeId(1); 117 $leaveEntitlement->setEmpNumber(32); 118 $leaveEntitlement->setNoOfDays(14); 119 $leaveEntitlement->setFromDate('2016-04-20'); 120 $leaveEntitlement->setToDate('2017-04-20'); 121 $leaveEntitlement->setEntitlementType(1); 122 $leaveEntitlement->setId(1); 123 124 $entitlementsCollection = new Doctrine_Collection('LeaveEntitlement'); 125 $entitlementsCollection[] = $leaveEntitlement; 126 $searchParameters = new \LeaveEntitlementSearchParameterHolder(); 127 $leaveEntitlementEntity = new LeaveEntitlement(1); 128 $leaveEntitlementEntity->buildEntitlement($leaveEntitlement); 129 130 $searchParameters->setEmpNumber(32); 131 $searchParameters->setLeaveTypeId(1); 132 $searchParameters->setFromDate('2016-04-20'); 133 $searchParameters->setToDate('2017-04-20'); 134 135 $entitlementApi = $this->getMockBuilder('Orangehrm\Rest\Api\Leave\LeaveEntitlementAPI') 136 ->setMethods(array('getFilters')) 137 ->setConstructorArgs(array($request)) 138 ->getMock(); 139 $entitlementApi->expects($this->once()) 140 ->method('getFilters') 141 ->will($this->returnValue($searchParameters)); 142 143 $entitlementApi->setRequestParams($requestParams); 144 145 $entitlementService = $this->getMockBuilder('LeaveEntitlementService')->getMock(); 146 $entitlementService->expects($this->any()) 147 ->method('searchLeaveEntitlements') 148 ->with($searchParameters) 149 ->will($this->returnValue($entitlementsCollection)); 150 151 $entitlementApi->setLeaveEntitlementService($entitlementService); 152 $ResponseReturned = $entitlementApi->getLeaveEntitlements(); 153 $testResponse = null; 154 $testResponse[] = $leaveEntitlementEntity->toArray(); 155 156 157 $success = new Response($testResponse, array()); 158 159 $this->assertEquals($success, $ResponseReturned); 160 161 } 162 163 164}