oms-HumanResourceTimeRecording/tests/Models/SessionElementTest.php
2024-01-26 22:53:59 +00:00

80 lines
2.0 KiB
PHP
Executable File

<?php
/**
* Jingga
*
* PHP Version 8.1
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\HumanResourceTimeRecording\tests\Models;
use Modules\HumanResourceTimeRecording\Models\ClockingStatus;
use Modules\HumanResourceTimeRecording\Models\NullSession;
use Modules\HumanResourceTimeRecording\Models\SessionElement;
/**
* @internal
*/
final class SessionElementTest extends \PHPUnit\Framework\TestCase
{
private SessionElement $element;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->element = new SessionElement();
}
/**
* @covers Modules\HumanResourceTimeRecording\Models\SessionElement
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->element->id);
self::assertEquals(0, $this->element->session->id);
self::assertInstanceOf('\DateTime', $this->element->datetime);
self::assertEquals(ClockingStatus::START, $this->element->getStatus());
}
/**
* @covers Modules\HumanResourceTimeRecording\Models\SessionElement
* @group module
*/
public function testStatusInputOutput() : void
{
$this->element->setStatus(ClockingStatus::END);
self::assertEquals(ClockingStatus::END, $this->element->getStatus());
}
/**
* @covers Modules\HumanResourceTimeRecording\Models\SessionElement
* @group module
*/
public function testSerialize() : void
{
$this->element->session = new NullSession(2);
$this->element->setStatus(ClockingStatus::END);
$serialized = $this->element->jsonSerialize();
unset($serialized['datetime']);
unset($serialized['session']);
self::assertEquals(
[
'id' => 0,
'status' => ClockingStatus::END,
],
$serialized
);
}
}