first commit
This commit is contained in:
53
tests/Media/MediaModelTest.php
Normal file
53
tests/Media/MediaModelTest.php
Normal file
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests\Media;
|
||||
|
||||
use App\Media\Media;
|
||||
use DateTime;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
final class MediaModelTest extends TestCase
|
||||
{
|
||||
public function testConstructAndGettersExposeMediaData(): void
|
||||
{
|
||||
$createdAt = new DateTime('2026-03-01 10:00:00');
|
||||
$media = new Media(8, 'file.webp', '/media/file.webp', 'abc123', 12, $createdAt);
|
||||
|
||||
self::assertSame(8, $media->getId());
|
||||
self::assertSame('file.webp', $media->getFilename());
|
||||
self::assertSame('/media/file.webp', $media->getUrl());
|
||||
self::assertSame('abc123', $media->getHash());
|
||||
self::assertSame(12, $media->getUserId());
|
||||
self::assertSame($createdAt, $media->getCreatedAt());
|
||||
}
|
||||
|
||||
public function testFromArrayHydratesMedia(): void
|
||||
{
|
||||
$media = Media::fromArray([
|
||||
'id' => '9',
|
||||
'filename' => 'stored.webp',
|
||||
'url' => '/media/stored.webp',
|
||||
'hash' => 'hash-9',
|
||||
'user_id' => '3',
|
||||
'created_at' => '2026-03-02 12:30:00',
|
||||
]);
|
||||
|
||||
self::assertSame(9, $media->getId());
|
||||
self::assertSame('stored.webp', $media->getFilename());
|
||||
self::assertSame('/media/stored.webp', $media->getUrl());
|
||||
self::assertSame('hash-9', $media->getHash());
|
||||
self::assertSame(3, $media->getUserId());
|
||||
self::assertSame('2026-03-02 12:30:00', $media->getCreatedAt()->format('Y-m-d H:i:s'));
|
||||
}
|
||||
|
||||
public function testCreatedAtDefaultsToNowWhenMissing(): void
|
||||
{
|
||||
$before = new DateTime('-2 seconds');
|
||||
$media = new Media(1, 'f.webp', '/media/f.webp', 'h', null);
|
||||
$after = new DateTime('+2 seconds');
|
||||
|
||||
self::assertGreaterThanOrEqual($before->getTimestamp(), $media->getCreatedAt()->getTimestamp());
|
||||
self::assertLessThanOrEqual($after->getTimestamp(), $media->getCreatedAt()->getTimestamp());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user