64 lines
1.9 KiB
PHP
64 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\Data;
|
|
|
|
use App\Features\Settings\Data\SaveFileData;
|
|
use App\Features\Settings\Models\SaveFile;
|
|
use PHPUnit\Framework\Attributes\Test;
|
|
use Tests\TestCase;
|
|
|
|
class SaveFileDataTest extends TestCase
|
|
{
|
|
#[Test]
|
|
public function it_can_be_created_from_array(): void
|
|
{
|
|
$data = SaveFileData::from([
|
|
'id' => 1,
|
|
'user_id' => 1,
|
|
'game_id' => 1,
|
|
'file_path' => 'saves/test.srm',
|
|
'file_name' => 'test.srm',
|
|
'file_size' => 1024,
|
|
'last_synced_at' => null,
|
|
]);
|
|
|
|
$this->assertEquals(1, $data->id);
|
|
$this->assertEquals(1, $data->userId);
|
|
$this->assertEquals(1, $data->gameId);
|
|
$this->assertEquals('saves/test.srm', $data->filePath);
|
|
$this->assertEquals('test.srm', $data->fileName);
|
|
$this->assertEquals(1024, $data->fileSize);
|
|
$this->assertNull($data->lastSyncedAt);
|
|
}
|
|
|
|
#[Test]
|
|
public function it_can_be_created_from_model(): void
|
|
{
|
|
$saveFile = SaveFile::factory()->create([
|
|
'last_synced_at' => '2024-01-15 10:30:00',
|
|
]);
|
|
|
|
$data = SaveFileData::fromModel($saveFile);
|
|
|
|
$this->assertEquals($saveFile->id, $data->id);
|
|
$this->assertEquals($saveFile->user_id, $data->userId);
|
|
$this->assertEquals($saveFile->game_id, $data->gameId);
|
|
$this->assertEquals($saveFile->file_path, $data->filePath);
|
|
$this->assertEquals($saveFile->file_name, $data->fileName);
|
|
$this->assertEquals($saveFile->file_size, $data->fileSize);
|
|
$this->assertNotNull($data->lastSyncedAt);
|
|
}
|
|
|
|
#[Test]
|
|
public function it_handles_null_last_synced_at(): void
|
|
{
|
|
$saveFile = SaveFile::factory()->create([
|
|
'last_synced_at' => null,
|
|
]);
|
|
|
|
$data = SaveFileData::fromModel($saveFile);
|
|
|
|
$this->assertNull($data->lastSyncedAt);
|
|
}
|
|
}
|