Skip to content

Commit e4b6363

Browse files
authored
OHRM5X-2120: Add pim - summary model to MyInfoAPI (orangehrm#1657)
* OHRM5X-2116: Add leave - tests for employee/my leave request getOne operation
1 parent edb1ec0 commit e4b6363

File tree

7 files changed

+649
-27
lines changed

7 files changed

+649
-27
lines changed

src/plugins/orangehrmLeavePlugin/test/Api/EmployeeLeaveRequestAPITest.php

+12-10
Original file line numberDiff line numberDiff line change
@@ -63,20 +63,22 @@ public function testGetValidationRuleForDelete(): void
6363
$api->getValidationRuleForDelete();
6464
}
6565

66-
public function testGetOne(): void
66+
/**
67+
* @dataProvider dataProviderForTestGetOne
68+
*/
69+
public function testGetOne(TestCaseParams $testCaseParams): void
6770
{
68-
$this->markTestSkipped();
69-
$api = new EmployeeLeaveRequestAPI($this->getRequest());
70-
$this->expectNotImplementedException();
71-
$api->getOne();
71+
$this->populateFixtures('EmployeeLeaveRequestAPITest.yaml');
72+
$this->createKernelWithMockServices([Services::AUTH_USER => $this->getMockAuthUser($testCaseParams)]);
73+
$this->registerServices($testCaseParams);
74+
$this->registerMockDateTimeHelper($testCaseParams);
75+
$api = $this->getApiEndpointMock(EmployeeLeaveRequestAPI::class, $testCaseParams);
76+
$this->assertValidTestCase($api, 'getOne', $testCaseParams);
7277
}
7378

74-
public function testGetValidationRuleForGetOne(): void
79+
public function dataProviderForTestGetOne(): array
7580
{
76-
$this->markTestSkipped();
77-
$api = new EmployeeLeaveRequestAPI($this->getRequest());
78-
$this->expectNotImplementedException();
79-
$api->getValidationRuleForGetOne();
81+
return $this->getTestCases('EmployeeLeaveRequestAPITestCases.yaml', 'GetOne');
8082
}
8183

8284
/**

src/plugins/orangehrmLeavePlugin/test/Api/MyLeaveRequestAPITest.php

+13-10
Original file line numberDiff line numberDiff line change
@@ -101,19 +101,22 @@ public function testGetValidationRuleForDelete(): void
101101
$api->getValidationRuleForDelete();
102102
}
103103

104-
public function testGetOne(): void
104+
/**
105+
* @dataProvider dataProviderForTestGetOne
106+
*/
107+
public function testGetOne(TestCaseParams $testCaseParams): void
105108
{
106-
$this->markTestSkipped();
107-
$api = new MyLeaveRequestAPI($this->getRequest());
108-
$this->expectNotImplementedException();
109-
$api->getOne();
109+
$this->populateFixtures('MyLeaveRequestAPITest.yaml');
110+
$this->createKernelWithMockServices([Services::AUTH_USER => $this->getMockAuthUser($testCaseParams)]);
111+
112+
$this->registerServices($testCaseParams);
113+
$this->registerMockDateTimeHelper($testCaseParams);
114+
$api = $this->getApiEndpointMock(MyLeaveRequestAPI::class, $testCaseParams);
115+
$this->assertValidTestCase($api, 'getOne', $testCaseParams);
110116
}
111117

112-
public function testGetValidationRuleForGetOne(): void
118+
public function dataProviderForTestGetOne(): array
113119
{
114-
$this->markTestSkipped();
115-
$api = new MyLeaveRequestAPI($this->getRequest());
116-
$this->expectNotImplementedException();
117-
$api->getValidationRuleForGetOne();
120+
return $this->getTestCases('MyLeaveRequestAPITestCases.yaml', 'GetOne');
118121
}
119122
}

src/plugins/orangehrmLeavePlugin/test/fixtures/testcases/EmployeeLeaveRequestAPITestCases.yaml

+261
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,267 @@ Update:
535535
query:
536536
model: detailed
537537

538+
GetOne:
539+
'get employee leave request - Admin':
540+
userId: 1
541+
services:
542+
admin.user_service: \OrangeHRM\Admin\Service\UserService
543+
core.config_service: \OrangeHRM\Core\Service\ConfigService
544+
pim.employee_service: \OrangeHRM\Pim\Service\EmployeeService
545+
leave.leave_request_service: \OrangeHRM\Leave\Service\LeaveRequestService
546+
core.authorization.user_role_manager_helper: \OrangeHRM\Core\Authorization\Helper\UserRoleManagerHelper
547+
factories:
548+
core.authorization.user_role_manager: [ '\OrangeHRM\Core\Authorization\Manager\UserRoleManagerFactory', 'getNewUserRoleManager' ]
549+
attributes:
550+
leaveRequestId: 2
551+
data:
552+
id: 2
553+
leaveType:
554+
id: 6
555+
name: Medical
556+
deleted: false
557+
dateApplied: '2021-09-23'
558+
meta: []
559+
560+
'get employee leave request - ESS':
561+
userId: 2
562+
services:
563+
admin.user_service: \OrangeHRM\Admin\Service\UserService
564+
core.config_service: \OrangeHRM\Core\Service\ConfigService
565+
pim.employee_service: \OrangeHRM\Pim\Service\EmployeeService
566+
leave.leave_request_service: \OrangeHRM\Leave\Service\LeaveRequestService
567+
core.authorization.user_role_manager_helper: \OrangeHRM\Core\Authorization\Helper\UserRoleManagerHelper
568+
factories:
569+
core.authorization.user_role_manager: [ '\OrangeHRM\Core\Authorization\Manager\UserRoleManagerFactory', 'getNewUserRoleManager' ]
570+
attributes:
571+
leaveRequestId: 2
572+
exception:
573+
class: 'OrangeHRM\Core\Api\V2\Exception\ForbiddenException'
574+
message: 'Unauthorized'
575+
576+
'get own leave request - Admin':
577+
userId: 1
578+
services:
579+
admin.user_service: \OrangeHRM\Admin\Service\UserService
580+
core.config_service: \OrangeHRM\Core\Service\ConfigService
581+
pim.employee_service: \OrangeHRM\Pim\Service\EmployeeService
582+
leave.leave_request_service: \OrangeHRM\Leave\Service\LeaveRequestService
583+
core.authorization.user_role_manager_helper: \OrangeHRM\Core\Authorization\Helper\UserRoleManagerHelper
584+
factories:
585+
core.authorization.user_role_manager: [ '\OrangeHRM\Core\Authorization\Manager\UserRoleManagerFactory', 'getNewUserRoleManager' ]
586+
attributes:
587+
leaveRequestId: 10
588+
data:
589+
id: 10
590+
leaveType:
591+
id: 2
592+
name: US - Vacation
593+
deleted: false
594+
dateApplied: '2021-10-29'
595+
meta: []
596+
597+
'get leave request - Admin - deleted leave type':
598+
userId: 1
599+
services:
600+
admin.user_service: \OrangeHRM\Admin\Service\UserService
601+
core.config_service: \OrangeHRM\Core\Service\ConfigService
602+
pim.employee_service: \OrangeHRM\Pim\Service\EmployeeService
603+
leave.leave_request_service: \OrangeHRM\Leave\Service\LeaveRequestService
604+
core.authorization.user_role_manager_helper: \OrangeHRM\Core\Authorization\Helper\UserRoleManagerHelper
605+
factories:
606+
core.authorization.user_role_manager: [ '\OrangeHRM\Core\Authorization\Manager\UserRoleManagerFactory', 'getNewUserRoleManager' ]
607+
attributes:
608+
leaveRequestId: 14
609+
data:
610+
id: 14
611+
leaveType:
612+
id: 4
613+
name: CAN - Personal
614+
deleted: true
615+
dateApplied: '2021-06-01'
616+
meta: []
617+
618+
'get leave request - Admin - purged employee':
619+
userId: 1
620+
services:
621+
admin.user_service: \OrangeHRM\Admin\Service\UserService
622+
core.config_service: \OrangeHRM\Core\Service\ConfigService
623+
pim.employee_service: \OrangeHRM\Pim\Service\EmployeeService
624+
leave.leave_request_service: \OrangeHRM\Leave\Service\LeaveRequestService
625+
core.authorization.user_role_manager_helper: \OrangeHRM\Core\Authorization\Helper\UserRoleManagerHelper
626+
factories:
627+
core.authorization.user_role_manager: [ '\OrangeHRM\Core\Authorization\Manager\UserRoleManagerFactory', 'getNewUserRoleManager' ]
628+
attributes:
629+
leaveRequestId: 19
630+
exception:
631+
class: 'OrangeHRM\Core\Api\V2\Exception\ForbiddenException'
632+
message: 'Unauthorized'
633+
634+
'get leave request - Admin - terminated employee':
635+
userId: 1
636+
services:
637+
admin.user_service: \OrangeHRM\Admin\Service\UserService
638+
core.config_service: \OrangeHRM\Core\Service\ConfigService
639+
pim.employee_service: \OrangeHRM\Pim\Service\EmployeeService
640+
leave.leave_request_service: \OrangeHRM\Leave\Service\LeaveRequestService
641+
core.authorization.user_role_manager_helper: \OrangeHRM\Core\Authorization\Helper\UserRoleManagerHelper
642+
factories:
643+
core.authorization.user_role_manager: [ '\OrangeHRM\Core\Authorization\Manager\UserRoleManagerFactory', 'getNewUserRoleManager' ]
644+
attributes:
645+
leaveRequestId: 14
646+
data:
647+
id: 14
648+
leaveType:
649+
id: 4
650+
name: CAN - Personal
651+
deleted: true
652+
dateApplied: '2021-06-01'
653+
meta: []
654+
655+
'get employee leave request - Admin - detail model':
656+
userId: 1
657+
services:
658+
admin.user_service: \OrangeHRM\Admin\Service\UserService
659+
core.config_service: \OrangeHRM\Core\Service\ConfigService
660+
pim.employee_service: \OrangeHRM\Pim\Service\EmployeeService
661+
core.normalizer_service: \OrangeHRM\Core\Service\NormalizerService
662+
leave.leave_period_service: \OrangeHRM\Leave\Service\LeavePeriodService
663+
leave.leave_request_service: \OrangeHRM\Leave\Service\LeaveRequestService
664+
leave.leave_config_service: \OrangeHRM\Leave\Service\LeaveConfigurationService
665+
leave.leave_entitlement_service: \OrangeHRM\Leave\Service\LeaveEntitlementService
666+
core.authorization.user_role_manager_helper: \OrangeHRM\Core\Authorization\Helper\UserRoleManagerHelper
667+
factories:
668+
core.authorization.user_role_manager: [ '\OrangeHRM\Core\Authorization\Manager\UserRoleManagerFactory', 'getNewUserRoleManager' ]
669+
attributes:
670+
leaveRequestId: 2
671+
now:
672+
datetime: '2021-09-15'
673+
query:
674+
model: 'detailed'
675+
data:
676+
id: 2
677+
dates:
678+
fromDate: '2021-09-23'
679+
toDate: '2021-09-26'
680+
durationType:
681+
id: null
682+
type: null
683+
startTime: null
684+
endTime: null
685+
noOfDays: 1.5
686+
leaveBalances:
687+
0:
688+
period:
689+
startDate: '2021-01-01'
690+
endDate: '2021-12-31'
691+
balance:
692+
entitled: 7.0
693+
used: 2.5
694+
scheduled: 0.0
695+
pending: 2.5
696+
taken: 0.0
697+
balance: 4.5
698+
asAtDate: '2021-09-23'
699+
endDate: '2021-12-31'
700+
multiPeriod: false
701+
leaveBreakdown:
702+
0:
703+
id: 1
704+
name: Pending Approval
705+
lengthDays: 1.5
706+
allowedActions:
707+
0:
708+
action: CANCEL
709+
name: Cancel
710+
hasMultipleStatus: false
711+
employee:
712+
empNumber: 4
713+
lastName: Abbey
714+
firstName: Kayla
715+
middleName: ''
716+
employeeId: 0004
717+
terminationId: null
718+
leaveType:
719+
id: 6
720+
name: Medical
721+
deleted: false
722+
lastComment: null
723+
meta: [ ]
724+
725+
'get leave request - ESS - detail model - partial dates':
726+
userId: 2
727+
services:
728+
admin.user_service: \OrangeHRM\Admin\Service\UserService
729+
core.config_service: \OrangeHRM\Core\Service\ConfigService
730+
pim.employee_service: \OrangeHRM\Pim\Service\EmployeeService
731+
core.normalizer_service: \OrangeHRM\Core\Service\NormalizerService
732+
leave.leave_period_service: \OrangeHRM\Leave\Service\LeavePeriodService
733+
leave.leave_request_service: \OrangeHRM\Leave\Service\LeaveRequestService
734+
leave.leave_config_service: \OrangeHRM\Leave\Service\LeaveConfigurationService
735+
leave.leave_entitlement_service: \OrangeHRM\Leave\Service\LeaveEntitlementService
736+
core.authorization.user_role_manager_helper: \OrangeHRM\Core\Authorization\Helper\UserRoleManagerHelper
737+
factories:
738+
core.authorization.user_role_manager: [ '\OrangeHRM\Core\Authorization\Manager\UserRoleManagerFactory', 'getNewUserRoleManager' ]
739+
attributes:
740+
leaveRequestId: 7
741+
now:
742+
datetime: '2021-09-15'
743+
query:
744+
model: 'detailed'
745+
data:
746+
id: 7
747+
dates:
748+
fromDate: '2021-10-12'
749+
toDate: null
750+
durationType:
751+
id: 1
752+
type: 'half_day_morning'
753+
startTime: '09:00'
754+
endTime: '13:00'
755+
noOfDays: 0.5
756+
leaveBalances:
757+
0:
758+
period:
759+
startDate: '2021-01-01'
760+
endDate: '2021-12-31'
761+
balance:
762+
entitled: 7.0
763+
used: 3.875
764+
scheduled: 0.5
765+
pending: 2.375
766+
taken: 1.0
767+
balance: 3.125
768+
asAtDate: '2021-10-12'
769+
endDate: '2021-12-31'
770+
multiPeriod: false
771+
leaveBreakdown:
772+
0:
773+
id: 2
774+
name: Scheduled
775+
lengthDays: 0.5
776+
allowedActions:
777+
0:
778+
action: CANCEL
779+
name: Cancel
780+
hasMultipleStatus: false
781+
employee:
782+
empNumber: 1
783+
lastName: Adalwin
784+
firstName: Odis
785+
middleName: ''
786+
employeeId: 0001
787+
terminationId: null
788+
leaveType:
789+
id: 6
790+
name: Medical
791+
deleted: false
792+
lastComment:
793+
id: 1
794+
comment: 'Clinic day'
795+
date: '2021-09-15'
796+
time: '19:29'
797+
meta: [ ]
798+
538799
GetAll:
539800
'without query params':
540801
userId: 2

0 commit comments

Comments
 (0)