oms-HumanResourceTimeRecording/tests/Models/SessionMapperTest.php

56 lines
1.8 KiB
PHP
Executable File

<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\HumanResourceTimeRecording\tests\Models;
use Modules\HumanResourceManagement\Models\NullEmployee;
use Modules\HumanResourceTimeRecording\Models\ClockingStatus;
use Modules\HumanResourceTimeRecording\Models\Session;
use Modules\HumanResourceTimeRecording\Models\SessionElement;
use Modules\HumanResourceTimeRecording\Models\SessionMapper;
/**
* @internal
*/
final class SessionMapperTest extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\HumanResourceTimeRecording\Models\SessionMapper
* @group module
*/
public function testCRUD() : void
{
$session = new Session(new NullEmployee(1));
$dt = new \DateTime(\date('Y-m-d', \strtotime('now')) . ' 7:55:34');
$element = new SessionElement($session, $dt);
$element->setStatus(ClockingStatus::START);
$session->addSessionElement($element);
$id = SessionMapper::create($session);
self::assertGreaterThan(0, $session->getId());
self::assertEquals($id, $session->getId());
$sessionR = SessionMapper::get($session->getId());
self::assertEquals($session->getType(), $sessionR->getType());
self::assertGreaterThan(0, \count(SessionMapper::getLastSessionsFromAllEmployees()));
self::assertNull(SessionMapper::getMostPlausibleOpenSessionForEmployee(9999));
// @todo implement
//self::assertGreaterThan(0, \count(SessionMapper::getSessionListForEmployee(1, (new \DateTime('now'))->modify('+1 month'))));
// self::assertGreaterThan(0, SessionMapper::getMostPlausibleOpenSessionForEmployee(1)->getId());
}
}