engelsystem/tests/Unit/FactoriesTest.php

87 lines
2.8 KiB
PHP

<?php
namespace Engelsystem\Test\Unit;
use Engelsystem\Models\Faq;
use Engelsystem\Models\Message;
use Engelsystem\Models\News;
use Engelsystem\Models\NewsComment;
use Engelsystem\Models\Question;
use Engelsystem\Models\Room;
use Engelsystem\Models\Shifts\Schedule;
use Engelsystem\Models\User\Contact;
use Engelsystem\Models\User\License;
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;
/** @var string[] */
protected array $models = [
Contact::class,
Faq::class,
License::class,
Message::class,
News::class,
NewsComment::class,
PasswordReset::class,
PersonalData::class,
Question::class,
Room::class,
Schedule::class,
Settings::class,
State::class,
User::class,
Worklog::class,
];
/**
* Test all existing model factories
*
* @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
* @covers \Database\Factories\Engelsystem\Models\RoomFactory
* @covers \Database\Factories\Engelsystem\Models\Shifts\ScheduleFactory
* @covers \Database\Factories\Engelsystem\Models\User\SettingsFactory
* @covers \Database\Factories\Engelsystem\Models\User\StateFactory
* @covers \Database\Factories\Engelsystem\Models\User\UserFactory
* @covers \Database\Factories\Engelsystem\Models\WorklogFactory
*/
public function testFactories(): void
{
$this->initDatabase();
foreach ($this->models as $model) {
$instance = (new $model())->factory()->create();
$this->assertInstanceOf(Model::class, $instance);
}
}
/**
* @covers \Database\Factories\Engelsystem\Models\User\StateFactory
*/
public function testStateFactoryArrived(): void
{
$this->initDatabase();
/** @var State $instance */
$instance = (new State())->factory()->arrived()->create();
$this->assertInstanceOf(Model::class, $instance);
$this->assertTrue($instance->arrived);
}
}