public function testCallGetCorporateDirectoryEmployeeDetailsMethod() { TestDataService::populate($this->fixture); $employeeService = new EmployeeService(); $empPicture = $employeeService->getEmployeePicture(2); $base64TestStringForEmp1 = 'R0lGODlhCgAKALMAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD//////ywAAAAACgAKAAAEClDJSau9OOvNe44AOw=='; $decodedBase64String = base64_decode($base64TestStringForEmp1); $empPicture->setPicture($decodedBase64String); $empPicture->save(); $empPicture = $employeeService->getEmployeePicture(3); $base64TestStringForEmp2 = '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'; $decodedBase64String = base64_decode($base64TestStringForEmp2); $empPicture->setPicture($decodedBase64String); $empPicture->save(); $paramObj = new WSRequestParameters(); $paramObj->setAppId(1); $paramObj->setAppToken('1234567890'); $paramObj->setMethod('getCorporateDirectoryEmployeeDetails'); $paramObj->setSessionToken(uniqid('ohrm_ws_session_')); $paramObj->setParameters(array('includeTerminate' => 0)); $paramObj->setRequestMethod('GET'); $result = $this->manager->callMethod($paramObj); $this->assertNotNull($result); $this->assertEquals(6, count($result)); $expectedEmployeeList = $this->getExpectedEmployeeList($base64TestStringForEmp1, $base64TestStringForEmp2); foreach ($expectedEmployeeList as $key => $testCase) { $this->assertEquals($result[$key], $expectedEmployeeList[$key]); } }
public function testCallGetLocationListMethod() { TestDataService::populate($this->locationFixture); $paramObj = new WSRequestParameters(); $paramObj->setAppId(1); $paramObj->setAppToken('1234567890'); $paramObj->setMethod('getLocationList'); $paramObj->setSessionToken(uniqid('ohrm_ws_session_')); $paramObj->setParameters(array(0)); $paramObj->setRequestMethod('GET'); $mock = $this->getMock('AdminWebServiceHelper', array('getAccessibleLocations')); $mock->method('getAccessibleLocations')->will($this->returnValue(array())); $this->adminWebServiceWrapper->setServiceInstance($mock); $paramObj->setWrapperObject($this->adminWebServiceWrapper); $result = $this->manager->callMethod($paramObj); $this->assertNotNull($result); foreach ($this->locationTestCases['Location'] as $key => $testCase) { $this->assertEquals($result[$key]['id'], $testCase['id']); $this->assertEquals($result[$key]['locationName'], $testCase['name']); $this->assertEquals($result[$key]['country_code'], $testCase['country_code']); $this->assertEquals($result[$key]['province'], $testCase['province']); $this->assertEquals($result[$key]['city'], $testCase['city']); $this->assertEquals($result[$key]['address'], $testCase['address']); } }
/** * @covers WSManager::callMethod * @todo Implement testCallMethod(). * */ public function testCallMethod() { $paramObj = new WSRequestParameters(); $paramObj->setAppId(1); $paramObj->setAppToken('1234567890'); $paramObj->setMethod('exampleMethod'); $paramObj->setSessionToken(uniqid('ohrm_ws_session_')); $paramObj->setParameters(array()); $paramObj->setRequestMethod('GET'); $result = $this->manager->callMethod($paramObj); $this->assertNotNull($result); }
/** * * @param sfWebRequest $request * @return WSRequestParameters */ public function extractParameters(sfWebRequest $request) { $webRequestParameters = new WSRequestParameters(); $logger = Logger::getLogger('core.webservices'); $requestMethod = $request->getMethod(); $contentType = $request->getContentType(); $logger->debug("HTTP Method: {$requestMethod}, Content-Type: {$contentType}"); $requestParameters = $request->getRequestParameters(); $logger->debug("Request Parameters: " . print_r($requestParameters, true)); if (!isset($requestParameters['ws_method'])) { throw new WebServiceException('Web service method is not specified', 400); } $webServiceMethod = $requestParameters['ws_method']; $methodParameters = array(); // Checking for deprecated method of sending parameters using an http header $header = $request->getHttpHeader('ohrm_ws_method_parameters'); if (!empty($header)) { $methodParameters = json_decode($header, true); if (!is_array($methodParameters)) { throw new WebServiceException("header ohrm_ws_method_parameters should be json encoded", 400); } } else { // get request parameters in URL (eg: /empNumber/11) after removing the default parameters $methodParameters = array_diff_key($requestParameters, array_flip(array('action', 'module', 'ws_method', '_sf_route'))); // Merge with GET parameters $methodParameters = array_merge($methodParameters, $request->getGetParameters()); // Check for JSON encoded body if ($contentType === 'application/json') { $postParams = json_decode(file_get_contents('php://input'), true); $methodParameters = array_merge($methodParameters, $postParams); } else { if ($requestMethod === 'POST') { $methodParameters = array_merge($methodParameters, $request->getPostParameters()); } } } // $arrayName = $this->getArrayNameForFunction($function); // if(!array_key_exists($arrayName, $methodParameters)) { // throw new WebServiceException('Required array name not provided', 404); // } $webRequestParameters->setRequestMethod($requestMethod); $webRequestParameters->setMethod($webServiceMethod); $webRequestParameters->setParameters($methodParameters); // $webRequestParameters->setAppId($authenticationParamerters['app_id']); // $webRequestParameters->setAppToken($authenticationParamerters['app_token']); // $webRequestParameters->setSessionToken($authenticationParamerters['session_token']); return $webRequestParameters; }
/** * * @param sfWebRequest $request * @return WSRequestParameters */ public function extractParamerts(sfWebRequest $request) { $webRequestParameters = new WSRequestParameters(); $requestMethod = $request->getMethod(); $parameters = array_keys($request->getRequestParameters()); if (count($parameters) < 4) { throw new WebServiceException('Web service method is not specified', 1001); } //$authenticationParamerters = json_decode($request->getHttpHeader('ohrm_ws_auth_parameters'), true); $methodParameters = json_decode($request->getHttpHeader('ohrm_ws_method_parameters'), true); // if (!is_array($authenticationParamerters)) { // throw new WebServiceException('Authentication parameters are sent in a wrong format', 1002); // } if (!is_array($methodParameters)) { throw new WebServiceException('Method parameters are sent in a wrong format', 1003); } $webRequestParameters->setRequestMethod($requestMethod); $webRequestParameters->setMethod($parameters[2]); $webRequestParameters->setParameters($methodParameters); // $webRequestParameters->setAppId($authenticationParamerters['app_id']); // $webRequestParameters->setAppToken($authenticationParamerters['app_token']); // $webRequestParameters->setSessionToken($authenticationParamerters['session_token']); return $webRequestParameters; }