Added more factories
This commit is contained in:
parent
ec355d40f5
commit
ff8adafd33
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories\Engelsystem\Models;
|
||||||
|
|
||||||
|
use Engelsystem\Models\Faq;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
class FaqFactory extends Factory
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
protected $model = Faq::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function definition()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'question' => $this->faker->text(100),
|
||||||
|
'text' => $this->faker->optional(.5, '')->realText(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories\Engelsystem\Models;
|
||||||
|
|
||||||
|
use Engelsystem\Models\Message;
|
||||||
|
use Engelsystem\Models\User\User;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
class MessageFactory extends Factory
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
protected $model = Message::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function definition()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'user_id' => User::factory(),
|
||||||
|
'receiver_id' => User::factory(),
|
||||||
|
'read' => $this->faker->boolean(),
|
||||||
|
'text' => $this->faker->text(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories\Engelsystem\Models;
|
||||||
|
|
||||||
|
use Engelsystem\Models\News;
|
||||||
|
use Engelsystem\Models\NewsComment;
|
||||||
|
use Engelsystem\Models\User\User;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
class NewsCommentFactory extends Factory
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
protected $model = NewsComment::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function definition()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'news_id' => News::factory(),
|
||||||
|
'user_id' => User::factory(),
|
||||||
|
'text' => $this->faker->text(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories\Engelsystem\Models;
|
||||||
|
|
||||||
|
use Engelsystem\Models\News;
|
||||||
|
use Engelsystem\Models\User\User;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
class NewsFactory extends Factory
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
protected $model = News::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function definition()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'title' => $this->faker->text(50),
|
||||||
|
'text' => $this->faker->realText(),
|
||||||
|
'is_meeting' => $this->faker->boolean(),
|
||||||
|
'is_pinned' => $this->faker->boolean(.1),
|
||||||
|
'user_id' => User::factory(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories\Engelsystem\Models;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Engelsystem\Models\Question;
|
||||||
|
use Engelsystem\Models\User\User;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
class QuestionFactory extends Factory
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
protected $model = Question::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function definition()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'user_id' => User::factory(),
|
||||||
|
'text' => $this->faker->text(100),
|
||||||
|
'answerer_id' => $this->faker->optional()->passthrough(User::factory()),
|
||||||
|
'answer' => function (array $attributes) {
|
||||||
|
return $attributes['answerer_id'] ? $this->faker->text() : null;
|
||||||
|
},
|
||||||
|
'answered_at' => function (array $attributes) {
|
||||||
|
return $attributes['answerer_id'] ? Carbon::instance($this->faker->dateTimeThisMonth()) : null;
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories\Engelsystem\Models;
|
||||||
|
|
||||||
|
use Engelsystem\Models\Room;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
class RoomFactory extends Factory
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
protected $model = Room::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function definition()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'name' => $this->faker->unique()->firstName(),
|
||||||
|
'map_url' => $this->faker->url(),
|
||||||
|
'description' => $this->faker->text(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories\Engelsystem\Models\Shifts;
|
||||||
|
|
||||||
|
use Engelsystem\Models\Shifts\Schedule;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
class ScheduleFactory extends Factory
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
protected $model = Schedule::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function definition()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'name' => $this->faker->words(4, true),
|
||||||
|
'url' => $this->faker->parse('https://{{safeEmailDomain}}/{{slug}}.xml'),
|
||||||
|
'shift_type' => $this->faker->numberBetween(1, 5),
|
||||||
|
'minutes_before' => 15,
|
||||||
|
'minutes_after' => 15,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Factories\Engelsystem\Models;
|
||||||
|
|
||||||
|
use Engelsystem\Models\User\User;
|
||||||
|
use Engelsystem\Models\Worklog;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
||||||
|
|
||||||
|
class WorklogFactory extends Factory
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
protected $model = Worklog::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function definition()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'user_id' => User::factory(),
|
||||||
|
'creator_id' => User::factory(),
|
||||||
|
'hours' => $this->faker->randomFloat(2, 0.01, 10),
|
||||||
|
'comment' => $this->faker->text(30),
|
||||||
|
'worked_at' => $this->faker->dateTimeThisMonth(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,6 +6,7 @@ namespace Engelsystem\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @property int $id
|
* @property int $id
|
||||||
|
@ -20,6 +21,8 @@ use Illuminate\Database\Eloquent\Builder;
|
||||||
*/
|
*/
|
||||||
class Faq extends BaseModel
|
class Faq extends BaseModel
|
||||||
{
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
/** @var bool Enable timestamps */
|
/** @var bool Enable timestamps */
|
||||||
public $timestamps = true;
|
public $timestamps = true;
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ namespace Engelsystem\Models;
|
||||||
use Engelsystem\Models\User\User;
|
use Engelsystem\Models\User\User;
|
||||||
use Engelsystem\Models\User\UsesUserModel;
|
use Engelsystem\Models\User\UsesUserModel;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Support\Carbon;
|
use Illuminate\Support\Carbon;
|
||||||
|
|
||||||
|
@ -29,6 +30,7 @@ use Illuminate\Support\Carbon;
|
||||||
*/
|
*/
|
||||||
class Message extends BaseModel
|
class Message extends BaseModel
|
||||||
{
|
{
|
||||||
|
use HasFactory;
|
||||||
use UsesUserModel;
|
use UsesUserModel;
|
||||||
|
|
||||||
/** @var bool enable timestamps */
|
/** @var bool enable timestamps */
|
||||||
|
|
|
@ -7,6 +7,7 @@ namespace Engelsystem\Models;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Engelsystem\Models\User\UsesUserModel;
|
use Engelsystem\Models\User\UsesUserModel;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Query\Builder as QueryBuilder;
|
use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
|
|
||||||
|
@ -32,6 +33,7 @@ use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
*/
|
*/
|
||||||
class News extends BaseModel
|
class News extends BaseModel
|
||||||
{
|
{
|
||||||
|
use HasFactory;
|
||||||
use UsesUserModel;
|
use UsesUserModel;
|
||||||
|
|
||||||
/** @var bool Enable timestamps */
|
/** @var bool Enable timestamps */
|
||||||
|
|
|
@ -6,6 +6,7 @@ namespace Engelsystem\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Engelsystem\Models\User\UsesUserModel;
|
use Engelsystem\Models\User\UsesUserModel;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Query\Builder as QueryBuilder;
|
use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
|
|
||||||
|
@ -27,6 +28,7 @@ use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
*/
|
*/
|
||||||
class NewsComment extends BaseModel
|
class NewsComment extends BaseModel
|
||||||
{
|
{
|
||||||
|
use HasFactory;
|
||||||
use UsesUserModel;
|
use UsesUserModel;
|
||||||
|
|
||||||
/** @var bool Enable timestamps */
|
/** @var bool Enable timestamps */
|
||||||
|
|
|
@ -8,6 +8,7 @@ use Carbon\Carbon;
|
||||||
use Engelsystem\Models\User\User;
|
use Engelsystem\Models\User\User;
|
||||||
use Engelsystem\Models\User\UsesUserModel;
|
use Engelsystem\Models\User\UsesUserModel;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Query\Builder as QueryBuilder;
|
use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
|
|
||||||
|
@ -29,6 +30,7 @@ use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
*/
|
*/
|
||||||
class Question extends BaseModel
|
class Question extends BaseModel
|
||||||
{
|
{
|
||||||
|
use HasFactory;
|
||||||
use UsesUserModel;
|
use UsesUserModel;
|
||||||
|
|
||||||
/** @var bool Enable timestamps */
|
/** @var bool Enable timestamps */
|
||||||
|
|
|
@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||||
namespace Engelsystem\Models;
|
namespace Engelsystem\Models;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Query\Builder as QueryBuilder;
|
use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,6 +25,8 @@ use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
*/
|
*/
|
||||||
class Room extends BaseModel
|
class Room extends BaseModel
|
||||||
{
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
/** @var bool Enable timestamps */
|
/** @var bool Enable timestamps */
|
||||||
public $timestamps = true;
|
public $timestamps = true;
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ namespace Engelsystem\Models\Shifts;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Engelsystem\Models\BaseModel;
|
use Engelsystem\Models\BaseModel;
|
||||||
use Illuminate\Database\Eloquent\Collection;
|
use Illuminate\Database\Eloquent\Collection;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||||
use Illuminate\Database\Query\Builder as QueryBuilder;
|
use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
|
|
||||||
|
@ -31,6 +32,8 @@ use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
*/
|
*/
|
||||||
class Schedule extends BaseModel
|
class Schedule extends BaseModel
|
||||||
{
|
{
|
||||||
|
use HasFactory;
|
||||||
|
|
||||||
/** @var bool enable timestamps */
|
/** @var bool enable timestamps */
|
||||||
public $timestamps = true;
|
public $timestamps = true;
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ namespace Engelsystem\Models;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Engelsystem\Models\User\User;
|
use Engelsystem\Models\User\User;
|
||||||
use Engelsystem\Models\User\UsesUserModel;
|
use Engelsystem\Models\User\UsesUserModel;
|
||||||
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
use Illuminate\Database\Query\Builder as QueryBuilder;
|
use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
|
|
||||||
|
@ -27,6 +28,7 @@ use Illuminate\Database\Query\Builder as QueryBuilder;
|
||||||
*/
|
*/
|
||||||
class Worklog extends BaseModel
|
class Worklog extends BaseModel
|
||||||
{
|
{
|
||||||
|
use HasFactory;
|
||||||
use UsesUserModel;
|
use UsesUserModel;
|
||||||
|
|
||||||
/** @var bool Enable timestamps */
|
/** @var bool Enable timestamps */
|
||||||
|
|
|
@ -34,12 +34,8 @@ class NewsTest extends TestCase
|
||||||
*/
|
*/
|
||||||
public function testCreated()
|
public function testCreated()
|
||||||
{
|
{
|
||||||
$news = new NewsModel([
|
/** @var NewsModel $news */
|
||||||
'title' => 'Foo',
|
$news = NewsModel::factory(['title' => 'Foo'])->create();
|
||||||
'text' => 'Bar',
|
|
||||||
'user_id' => 1,
|
|
||||||
]);
|
|
||||||
$news->save();
|
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
$this->mailer->expects($this->exactly(2))
|
$this->mailer->expects($this->exactly(2))
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?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\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 $models = [
|
||||||
|
User::class,
|
||||||
|
Contact::class,
|
||||||
|
PersonalData::class,
|
||||||
|
Settings::class,
|
||||||
|
State::class,
|
||||||
|
PasswordReset::class,
|
||||||
|
Worklog::class,
|
||||||
|
News::class,
|
||||||
|
NewsComment::class,
|
||||||
|
Message::class,
|
||||||
|
Faq::class,
|
||||||
|
Question::class,
|
||||||
|
Room::class,
|
||||||
|
Schedule::class,
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test all existing model factories
|
||||||
|
*/
|
||||||
|
public function testFactories()
|
||||||
|
{
|
||||||
|
$this->initDatabase();
|
||||||
|
|
||||||
|
foreach ($this->models as $model) {
|
||||||
|
$instance = (new $model())->factory()->create();
|
||||||
|
$this->assertInstanceOf(Model::class, $instance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue