123 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| declare(strict_types=1);
 | |
| 
 | |
| namespace Engelsystem\Test\Unit;
 | |
| 
 | |
| use Engelsystem\Models\AngelType;
 | |
| use Engelsystem\Models\Faq;
 | |
| use Engelsystem\Models\Group;
 | |
| use Engelsystem\Models\Message;
 | |
| use Engelsystem\Models\News;
 | |
| use Engelsystem\Models\NewsComment;
 | |
| use Engelsystem\Models\OAuth;
 | |
| use Engelsystem\Models\Privilege;
 | |
| use Engelsystem\Models\Question;
 | |
| use Engelsystem\Models\Location;
 | |
| use Engelsystem\Models\Session;
 | |
| use Engelsystem\Models\Shifts\NeededAngelType;
 | |
| use Engelsystem\Models\Shifts\Schedule;
 | |
| use Engelsystem\Models\Shifts\Shift;
 | |
| use Engelsystem\Models\Shifts\ShiftEntry;
 | |
| use Engelsystem\Models\Shifts\ShiftType;
 | |
| 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\UserAngelType;
 | |
| use Engelsystem\Models\Worklog;
 | |
| use Illuminate\Database\Eloquent\Model;
 | |
| 
 | |
| class FactoriesTest extends TestCase
 | |
| {
 | |
|     use HasDatabase;
 | |
| 
 | |
|     /**
 | |
|      * @return string[][]
 | |
|      */
 | |
|     public function factoriesProvider(): array
 | |
|     {
 | |
|         return [
 | |
|             [AngelType::class],
 | |
|             [Contact::class],
 | |
|             [Faq::class],
 | |
|             [Group::class],
 | |
|             [License::class],
 | |
|             [Location::class],
 | |
|             [Message::class],
 | |
|             [NeededAngelType::class],
 | |
|             [News::class],
 | |
|             [NewsComment::class],
 | |
|             [OAuth::class],
 | |
|             [PasswordReset::class],
 | |
|             [PersonalData::class],
 | |
|             [Privilege::class],
 | |
|             [Question::class],
 | |
|             [Schedule::class],
 | |
|             [Session::class],
 | |
|             [Settings::class],
 | |
|             [Shift::class],
 | |
|             [ShiftEntry::class],
 | |
|             [ShiftType::class],
 | |
|             [State::class],
 | |
|             [UserAngelType::class],
 | |
|             [User::class],
 | |
|             [Worklog::class],
 | |
|         ];
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Test all model factories
 | |
|      *
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\AngelTypeFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\FaqFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\GroupFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\LocationFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\MessageFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\NewsCommentFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\NewsFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\OAuthFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\PrivilegeFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\QuestionFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\SessionFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\Shifts\NeededAngelTypeFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\Shifts\ScheduleFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\Shifts\ShiftEntryFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\Shifts\ShiftFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\Shifts\ShiftTypeFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\UserAngelTypeFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\User\ContactFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\User\LicenseFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\User\PasswordResetFactory
 | |
|      * @covers       \Database\Factories\Engelsystem\Models\User\PersonalDataFactory
 | |
|      * @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
 | |
|      *
 | |
|      * @dataProvider factoriesProvider
 | |
|      */
 | |
|     public function testFactories(string $model): void
 | |
|     {
 | |
|         $this->initDatabase();
 | |
| 
 | |
|         $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);
 | |
|     }
 | |
| }
 | 
