2016-03-25 01:18:05 -07:00
|
|
|
<?php
|
2021-11-30 20:09:29 -08:00
|
|
|
namespace Tests\Unit;
|
2021-06-10 13:15:52 -07:00
|
|
|
|
2016-03-25 01:18:05 -07:00
|
|
|
use App\Models\Category;
|
2021-12-02 13:40:16 -08:00
|
|
|
use App\Models\AssetModel;
|
|
|
|
use App\Models\Asset;
|
2023-03-07 16:57:55 -08:00
|
|
|
use Tests\TestCase;
|
2016-03-25 01:18:05 -07:00
|
|
|
|
2023-03-07 16:57:55 -08:00
|
|
|
class CategoryTest extends TestCase
|
2016-03-25 01:18:05 -07:00
|
|
|
{
|
2021-06-10 13:15:52 -07:00
|
|
|
public function testFailsEmptyValidation()
|
|
|
|
{
|
2018-07-23 06:48:21 -07:00
|
|
|
// An Asset requires a name, a qty, and a category_id.
|
2021-06-10 13:15:52 -07:00
|
|
|
$a = Category::create();
|
|
|
|
$this->assertFalse($a->isValid());
|
2016-03-25 01:18:05 -07:00
|
|
|
|
2021-06-10 13:15:52 -07:00
|
|
|
$fields = [
|
2018-07-23 06:48:21 -07:00
|
|
|
'name' => 'name',
|
2021-06-10 13:15:52 -07:00
|
|
|
'category_type' => 'category type',
|
2018-07-23 06:48:21 -07:00
|
|
|
];
|
2021-06-10 13:15:52 -07:00
|
|
|
$errors = $a->getErrors();
|
|
|
|
foreach ($fields as $field => $fieldTitle) {
|
|
|
|
$this->assertEquals($errors->get($field)[0], "The ${fieldTitle} field is required.");
|
|
|
|
}
|
|
|
|
}
|
2016-03-25 01:18:05 -07:00
|
|
|
|
2021-06-10 13:15:52 -07:00
|
|
|
public function testACategoryCanHaveAssets()
|
|
|
|
{
|
2023-03-13 16:45:43 -07:00
|
|
|
$category = Category::factory()->assetDesktopCategory()->create();
|
2016-03-25 01:18:05 -07:00
|
|
|
|
2021-12-02 13:40:16 -08:00
|
|
|
// Generate 5 models via factory
|
|
|
|
$models = AssetModel::factory()
|
|
|
|
->mbp13Model()
|
|
|
|
->count(5)
|
|
|
|
->create(
|
|
|
|
[
|
|
|
|
'category_id' => $category->id
|
|
|
|
]
|
|
|
|
);
|
|
|
|
|
2021-12-02 15:02:25 -08:00
|
|
|
|
|
|
|
|
2021-12-02 13:40:16 -08:00
|
|
|
// Loop through the models and create 2 assets in each model
|
|
|
|
$models->each(function ($model) {
|
2021-12-02 15:02:25 -08:00
|
|
|
//dd($model);
|
2021-12-02 13:40:16 -08:00
|
|
|
$asset = Asset::factory()
|
|
|
|
->count(2)
|
|
|
|
->create(
|
|
|
|
[
|
|
|
|
'model_id' => $model->id,
|
|
|
|
]
|
|
|
|
);
|
2021-12-02 14:26:31 -08:00
|
|
|
//dd($asset);
|
2021-06-10 13:15:52 -07:00
|
|
|
});
|
2021-12-02 13:40:16 -08:00
|
|
|
|
|
|
|
$this->assertCount(5, $category->models);
|
|
|
|
$this->assertCount(5, $category->models);
|
2021-06-10 13:15:52 -07:00
|
|
|
$this->assertEquals(10, $category->itemCount());
|
|
|
|
}
|
2016-03-25 01:18:05 -07:00
|
|
|
}
|