Erweitere die Tests

This commit is contained in:
2025-06-19 14:19:09 +02:00
parent a964663f51
commit cf6eff6ab0
9 changed files with 195 additions and 44 deletions
+41 -5
View File
@@ -17,6 +17,7 @@ class WorkingHoursTest extends Unit
$obj = new WorkingHours();
$this->assertNull($obj->getWorkingDay());
$this->assertNull($obj->getWorkingTime());
$this->assertFalse($obj->isHomeOffice());
$this->expectException(Error::class);
$obj->jsonSerialize();
@@ -32,17 +33,21 @@ class WorkingHoursTest extends Unit
new DateTime('2020-11-30'),
new DateInterval("PT8H"),
[
'workingDay' => '2020-11-30',
'workingTime' => '08:00:00',
'workingDay' => '2020-11-30',
'workingTime' => '08:00:00',
'isHomeOffice' => true,
],
true,
],
[
new DateTime('2021-05-03'),
new DateInterval("PT7H45M"),
[
'workingDay' => '2021-05-03',
'workingTime' => '07:45:00',
'workingDay' => '2021-05-03',
'workingTime' => '07:45:00',
'isHomeOffice' => false,
],
false,
],
];
}
@@ -51,10 +56,38 @@ class WorkingHoursTest extends Unit
* @param DateTime $date
* @param DateInterval $interval
* @param array<string, string> $shouldJson
* @param bool $isHomeOffice
*/
#[DataProvider('workingHoursProvider')]
public function testWorkingHoursWithContent(DateTime $date, DateInterval $interval, array $shouldJson): void
public function testWorkingHoursWithContent(DateTime $date, DateInterval $interval, array $shouldJson, bool $isHomeOffice): void
{
$obj = new WorkingHours();
$obj->setWorkingDay($date)->setWorkingTime($interval)->setIsHomeOffice($isHomeOffice);
$this->assertNotNull($obj->getWorkingDay());
$this->assertInstanceOf(DateTime::class, $obj->getWorkingDay());
$this->assertEquals($date, $obj->getWorkingDay());
$this->assertNotNull($obj->getWorkingTime());
$this->assertInstanceOf(DateInterval::class, $obj->getWorkingTime());
$this->assertEquals($interval, $obj->getWorkingTime());
$this->assertIsBool($obj->isHomeOffice());
$this->assertEquals($isHomeOffice, $obj->isHomeOffice());
$json = $obj->jsonSerialize();
$this->assertEquals($shouldJson, $json);
}
/**
* @param DateTime $date
* @param DateInterval $interval
* @param array<string, string> $shouldJson
*/
#[DataProvider('workingHoursProvider')]
public function testWorkingHoursWithContentWithoutHomeOfficeInformation(DateTime $date, DateInterval $interval, array $shouldJson): void
{
$shouldJson['isHomeOffice'] = false;
$obj = new WorkingHours();
$obj->setWorkingDay($date)->setWorkingTime($interval);
@@ -66,6 +99,9 @@ class WorkingHoursTest extends Unit
$this->assertInstanceOf(DateInterval::class, $obj->getWorkingTime());
$this->assertEquals($interval, $obj->getWorkingTime());
$this->assertIsBool($obj->isHomeOffice());
$this->assertFalse($obj->isHomeOffice());
$json = $obj->jsonSerialize();
$this->assertEquals($shouldJson, $json);
}
+19 -1
View File
@@ -20,6 +20,7 @@ class WorkingHoursViewTest extends Unit
{
$date = new DateTime('2020-11-30');
$work_days = 15;
$home_work_days = 12;
$total_hours = new DateInterval("PT32H22M");
$overtime = new DateInterval("PT22M");
$absence_time = clone $overtime;
@@ -30,12 +31,14 @@ class WorkingHoursViewTest extends Unit
PeriodDesignationEnum::WEEKLY,
$work_days,
$total_hours,
$home_work_days,
$overtime,
[
'period' => '2020#49',
'periodDesignation' => 'weekly',
'workingDays' => 15,
'totalHours' => '32:22:00',
'homeOfficeDays' => $home_work_days,
'overtime' => '00:22:00'
],
],
@@ -44,12 +47,14 @@ class WorkingHoursViewTest extends Unit
PeriodDesignationEnum::WEEKLY,
$work_days,
$total_hours,
$home_work_days,
$absence_time,
[
'period' => '2020#49',
'periodDesignation' => 'weekly',
'workingDays' => 15,
'totalHours' => '32:22:00',
'homeOfficeDays' => $home_work_days,
'overtime' => '-00:22:00'
],
],
@@ -58,12 +63,14 @@ class WorkingHoursViewTest extends Unit
PeriodDesignationEnum::MONTHLY,
$work_days,
$total_hours,
$home_work_days,
$overtime,
[
'period' => '2020-11',
'periodDesignation' => 'monthly',
'workingDays' => 15,
'totalHours' => '32:22:00',
'homeOfficeDays' => $home_work_days,
'overtime' => '00:22:00'
],
],
@@ -72,12 +79,14 @@ class WorkingHoursViewTest extends Unit
PeriodDesignationEnum::MONTHLY,
$work_days,
$total_hours,
$home_work_days,
$absence_time,
[
'period' => '2020-11',
'periodDesignation' => 'monthly',
'workingDays' => 15,
'totalHours' => '32:22:00',
'homeOfficeDays' => $home_work_days,
'overtime' => '-00:22:00'
],
],
@@ -86,12 +95,14 @@ class WorkingHoursViewTest extends Unit
PeriodDesignationEnum::YEARLY,
$work_days,
$total_hours,
$home_work_days,
$overtime,
[
'period' => '2020',
'periodDesignation' => 'yearly',
'workingDays' => 15,
'totalHours' => '32:22:00',
'homeOfficeDays' => $home_work_days,
'overtime' => '00:22:00'
],
],
@@ -100,12 +111,14 @@ class WorkingHoursViewTest extends Unit
PeriodDesignationEnum::YEARLY,
$work_days,
$total_hours,
$home_work_days,
$absence_time,
[
'period' => '2020',
'periodDesignation' => 'yearly',
'workingDays' => 15,
'totalHours' => '32:22:00',
'homeOfficeDays' => $home_work_days,
'overtime' => '-00:22:00'
],
],
@@ -117,6 +130,7 @@ class WorkingHoursViewTest extends Unit
* @param PeriodDesignationEnum $periodDesignation
* @param int $workingDays
* @param DateInterval $totalHours
* @param int $homeWorkDays ,
* @param DateInterval $overtime
* @param array<string, string> $shouldJson
*/
@@ -126,10 +140,11 @@ class WorkingHoursViewTest extends Unit
PeriodDesignationEnum $periodDesignation,
int $workingDays,
DateInterval $totalHours,
int $homeWorkDays,
DateInterval $overtime,
array $shouldJson
): void {
$obj = new WorkingHoursView($period, $periodDesignation, $workingDays, $totalHours, $overtime);
$obj = new WorkingHoursView($period, $periodDesignation, $workingDays, $totalHours, $homeWorkDays, $overtime);
$this->assertInstanceOf(DateTimeInterface::class, $obj->getPeriod());
$this->assertEquals($period, $obj->getPeriod());
@@ -142,6 +157,9 @@ class WorkingHoursViewTest extends Unit
$this->assertInstanceOf(DateInterval::class, $obj->getTotalHours());
$this->assertEquals($totalHours, $obj->getTotalHours());
$this->assertIsInt($obj->getHomeOfficeDays());
$this->assertEquals($homeWorkDays, $obj->getHomeOfficeDays());
$this->assertInstanceOf(DateInterval::class, $obj->getOvertime());
$this->assertEquals($overtime, $obj->getOvertime());