From d4f30721695db5ce591e51a2932e6437b968ec29 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Sun, 18 Jun 2023 11:26:01 +0300 Subject: [PATCH] Add test models to the seeders. --- database/seeders/CategorySeeder.php | 23 ++++++++++++++- database/seeders/CitySeeder.php | 8 ++++++ database/seeders/CompanySeeder.php | 10 ++++++- database/seeders/DatabaseSeeder.php | 4 +++ database/seeders/ItemSeeder.php | 44 ++++++++++++++++++++++++++++- database/seeders/UserSeeder.php | 23 +++++++++++++++ 6 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 database/seeders/UserSeeder.php diff --git a/database/seeders/CategorySeeder.php b/database/seeders/CategorySeeder.php index bc3c0e2..a1762ec 100644 --- a/database/seeders/CategorySeeder.php +++ b/database/seeders/CategorySeeder.php @@ -4,14 +4,35 @@ namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; +use App\Models\Company; +use App\Models\Category; class CategorySeeder extends Seeder { + protected Company $test_company; + + protected $test_category = [ + 'uuid' => 'b7301b09-fc1c-4d0d-a556-ed70fc8e40f7', + 'name' => 'Pizza', + 'url' => 'pizza', + 'company_id' => null + ]; + + public function setTestCompany() + { + $this->test_company = Company::firstOrCreate([ + 'name' => 'testCompany', + ]); + + $this->test_category['company_id'] = $this->test_company->id; + } + /** * Run the database seeds. */ public function run(): void { - // + $this->setTestCompany(); + Category::factory()->create($this->test_category); } } diff --git a/database/seeders/CitySeeder.php b/database/seeders/CitySeeder.php index 79ef947..779005e 100644 --- a/database/seeders/CitySeeder.php +++ b/database/seeders/CitySeeder.php @@ -8,6 +8,12 @@ use App\Models\City; class CitySeeder extends Seeder { + protected $test_city = [ + 'uuid' => 'b7307b09-fc0c-4d0d-a556-ed70fc8e40f7', + 'name' => 'testCity', + 'url' => 'test_city' + ]; + /** * Run the database seeds. */ @@ -16,5 +22,7 @@ class CitySeeder extends Seeder City::factory() ->count(10) ->create(); + + City::factory()->create($this->test_city); } } diff --git a/database/seeders/CompanySeeder.php b/database/seeders/CompanySeeder.php index d4ce049..c4e77e2 100644 --- a/database/seeders/CompanySeeder.php +++ b/database/seeders/CompanySeeder.php @@ -4,14 +4,22 @@ namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; +use App\Models\Company; class CompanySeeder extends Seeder { + protected $test_company = [ + 'uuid' => 'b7301b09-fc0c-4d0d-a556-ed70fc8e40f7', + 'name' => 'testCompany', + 'image' => null, + 'description' => 'Pellentesque tristique imperdiet tortor.' + ]; + /** * Run the database seeds. */ public function run(): void { - // + Company::factory()->create($this->test_company); } } diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 8ce213d..d8f83f4 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -13,7 +13,11 @@ class DatabaseSeeder extends Seeder public function run(): void { $this->call([ + UserSeeder::class, CitySeeder::class, + CompanySeeder::class, + CategorySeeder::class, + ItemSeeder::class, ]); } } diff --git a/database/seeders/ItemSeeder.php b/database/seeders/ItemSeeder.php index 480643d..8183832 100644 --- a/database/seeders/ItemSeeder.php +++ b/database/seeders/ItemSeeder.php @@ -4,14 +4,56 @@ namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; +use App\Models\Category; +use App\Models\Item; class ItemSeeder extends Seeder { + protected Category $test_category; + + protected $test_items = [ + [ + 'uuid' => 'b7301b09-fc1c-4d0d-a556-ed70fc8e41f7', + 'name' => 'Pizza Polo', + 'url' => 'pizza-polo', + 'description' => 'Nunc porta vulputate tellus.', + 'price' => 79.99, + 'image' => null, + 'category_id' => null + ], + [ + 'uuid' => 'b7301b09-fc1c-4d0d-a556-ed70fc9e40f7', + 'name' => 'Pizza Cezar', + 'url' => 'pizza-cezar', + 'description' => 'Sed bibendum.', + 'price' => 99.99, + 'image' => null, + 'category_id' => null + ] + ]; + + public function setTestCategory() + { + $this->test_category = Category::firstOrCreate([ + 'name' => 'Pizza', + ]); + + $this->test_category['company_id'] = $this->test_category->id; + + // Set category_id for all items + $size = count($this->test_items); + for ($i = 0; $i < $size; $i++) + $this->test_items[$i]['category_id'] = $this->test_category->id; + } + /** * Run the database seeds. */ public function run(): void { - // + $this->setTestCategory(); + + foreach($this->test_items as $test_item) + Item::factory()->create($test_item); } } diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php new file mode 100644 index 0000000..fba0a1b --- /dev/null +++ b/database/seeders/UserSeeder.php @@ -0,0 +1,23 @@ + 'Test', + 'matrix_username' => '@test:test.com', + 'phone' => '380661234567' + ]; + /** + * Run the database seeds. + */ + public function run(): void + { + User::factory()->create($this->test_user); + } +}