2021-07-10 00:59:20 +02:00
|
|
|
<?php
|
|
|
|
|
2023-02-03 20:41:59 +01:00
|
|
|
declare(strict_types=1);
|
|
|
|
|
2021-07-10 00:59:20 +02:00
|
|
|
namespace Engelsystem\Test\Unit;
|
|
|
|
|
|
|
|
use Engelsystem\Models\Faq;
|
|
|
|
use Engelsystem\Models\Message;
|
|
|
|
use Engelsystem\Models\News;
|
|
|
|
use Engelsystem\Models\NewsComment;
|
|
|
|
use Engelsystem\Models\Question;
|
2023-10-15 19:25:55 +02:00
|
|
|
use Engelsystem\Models\Location;
|
2021-07-10 00:59:20 +02:00
|
|
|
use Engelsystem\Models\Shifts\Schedule;
|
2023-01-03 22:19:03 +01:00
|
|
|
use Engelsystem\Models\Shifts\Shift;
|
2023-01-18 13:02:11 +01:00
|
|
|
use Engelsystem\Models\Shifts\ShiftEntry;
|
2021-07-10 00:59:20 +02:00
|
|
|
use Engelsystem\Models\User\Contact;
|
2022-06-02 13:18:37 +02:00
|
|
|
use Engelsystem\Models\User\License;
|
2021-07-10 00:59:20 +02:00
|
|
|
use Engelsystem\Models\User\PasswordReset;
|
|
|
|
use Engelsystem\Models\User\PersonalData;
|
|
|
|
use Engelsystem\Models\User\Settings;
|
|
|
|
use Engelsystem\Models\User\State;
|
|
|
|
use Engelsystem\Models\User\User;
|
|
|
|
use Engelsystem\Models\Worklog;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
|
|
|
|
class FactoriesTest extends TestCase
|
|
|
|
{
|
|
|
|
use HasDatabase;
|
|
|
|
|
2023-01-03 22:19:03 +01:00
|
|
|
/**
|
|
|
|
* @return string[][]
|
|
|
|
*/
|
|
|
|
public function factoriesProvider(): array
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
[Contact::class],
|
|
|
|
[Faq::class],
|
|
|
|
[License::class],
|
|
|
|
[Message::class],
|
|
|
|
[News::class],
|
|
|
|
[NewsComment::class],
|
|
|
|
[PasswordReset::class],
|
|
|
|
[PersonalData::class],
|
|
|
|
[Question::class],
|
2023-10-15 19:25:55 +02:00
|
|
|
[Location::class],
|
2023-01-03 22:19:03 +01:00
|
|
|
[Schedule::class],
|
2023-01-18 13:02:11 +01:00
|
|
|
[ShiftEntry::class],
|
2023-01-03 22:19:03 +01:00
|
|
|
[Settings::class],
|
|
|
|
[Shift::class],
|
|
|
|
[State::class],
|
|
|
|
[User::class],
|
|
|
|
[Worklog::class],
|
|
|
|
];
|
|
|
|
}
|
2021-07-10 00:59:20 +02:00
|
|
|
|
|
|
|
/**
|
2023-01-03 22:19:03 +01:00
|
|
|
* Test all model factories
|
2022-06-02 13:18:37 +02:00
|
|
|
*
|
2023-01-03 22:19:03 +01:00
|
|
|
* @covers \Database\Factories\Engelsystem\Models\User\ContactFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\FaqFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\User\LicenseFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\MessageFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\NewsFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\NewsCommentFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\User\PasswordResetFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\User\PersonalDataFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\QuestionFactory
|
2023-10-15 19:25:55 +02:00
|
|
|
* @covers \Database\Factories\Engelsystem\Models\LocationFactory
|
2023-01-03 22:19:03 +01:00
|
|
|
* @covers \Database\Factories\Engelsystem\Models\Shifts\ScheduleFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\User\SettingsFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\Shifts\ShiftFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\User\StateFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\User\UserFactory
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\WorklogFactory
|
|
|
|
*
|
|
|
|
* @dataProvider factoriesProvider
|
2021-07-10 00:59:20 +02:00
|
|
|
*/
|
2023-01-03 22:19:03 +01:00
|
|
|
public function testFactories(string $model): void
|
2021-07-10 00:59:20 +02:00
|
|
|
{
|
|
|
|
$this->initDatabase();
|
|
|
|
|
2023-01-03 22:19:03 +01:00
|
|
|
$instance = (new $model())->factory()->create();
|
|
|
|
$this->assertInstanceOf(Model::class, $instance);
|
2021-07-10 00:59:20 +02:00
|
|
|
}
|
2022-06-02 13:18:37 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @covers \Database\Factories\Engelsystem\Models\User\StateFactory
|
|
|
|
*/
|
2022-12-13 19:00:43 +01:00
|
|
|
public function testStateFactoryArrived(): void
|
2022-06-02 13:18:37 +02:00
|
|
|
{
|
|
|
|
$this->initDatabase();
|
|
|
|
|
|
|
|
/** @var State $instance */
|
|
|
|
$instance = (new State())->factory()->arrived()->create();
|
|
|
|
$this->assertInstanceOf(Model::class, $instance);
|
|
|
|
$this->assertTrue($instance->arrived);
|
|
|
|
}
|
2021-07-10 00:59:20 +02:00
|
|
|
}
|