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;
|
|
|
|
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
|
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
2021-06-10 13:15:52 -07:00
|
|
|
use Illuminate\Foundation\Testing\WithoutMiddleware;
|
2021-11-30 20:09:29 -08:00
|
|
|
use Tests\Unit\BaseTest;
|
2021-12-02 13:40:16 -08:00
|
|
|
use App\Models\AssetModel;
|
|
|
|
use App\Models\Asset;
|
|
|
|
use App\Models\Accessory;
|
2016-03-25 01:18:05 -07:00
|
|
|
|
2017-07-11 20:37:02 -07:00
|
|
|
class CategoryTest extends BaseTest
|
2016-03-25 01:18:05 -07:00
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var \UnitTester
|
|
|
|
*/
|
|
|
|
protected $tester;
|
2017-06-12 17:39:03 -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()
|
|
|
|
{
|
2021-12-02 13:40:16 -08: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
|
|
|
|
]
|
|
|
|
);
|
|
|
|
|
|
|
|
// Loop through the models and create 2 assets in each model
|
|
|
|
$models->each(function ($model) {
|
|
|
|
$asset = Asset::factory()
|
|
|
|
->count(2)
|
|
|
|
->create(
|
|
|
|
[
|
|
|
|
'model_id' => $model->id,
|
2017-06-12 17:39:03 -07:00
|
|
|
|
2021-12-02 13:40:16 -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());
|
|
|
|
}
|
2017-06-12 17:39:03 -07:00
|
|
|
|
|
|
|
|
2021-12-02 13:40:16 -08:00
|
|
|
// public function testACategoryCanHaveAccessories()
|
|
|
|
// {
|
|
|
|
// $category = Category::factory()->assetDesktopCategory()->create();
|
|
|
|
// Accessory::factory()->count(5)->appleBtKeyboard()->create(
|
|
|
|
// [
|
|
|
|
// 'category_id' => $category->id
|
|
|
|
// ]
|
|
|
|
// );
|
2017-06-12 17:39:03 -07:00
|
|
|
|
2021-12-02 13:40:16 -08:00
|
|
|
// $this->assertCount(5, $category->accessories);
|
|
|
|
// $this->assertEquals(5, $category->itemCount());
|
|
|
|
// }
|
2017-06-12 17:39:03 -07:00
|
|
|
|
2021-12-02 13:40:16 -08:00
|
|
|
// public function testACategoryCanHaveConsumables()
|
|
|
|
// {
|
|
|
|
// $category = $this->createValidCategory('consumable-paper-category');
|
|
|
|
// \App\Models\Consumable::factory()->count(5)->cardstock()->create(['category_id' => $category->id]);
|
|
|
|
// $this->assertCount(5, $category->consumables);
|
|
|
|
// $this->assertEquals(5, $category->itemCount());
|
|
|
|
// }
|
|
|
|
|
|
|
|
// public function testACategoryCanHaveComponents()
|
|
|
|
// {
|
|
|
|
// $category = $this->createValidCategory('component-ram-category');
|
|
|
|
// \App\Models\Component::factory()->count(5)->ramCrucial4()->create(['category_id' => $category->id]);
|
|
|
|
// $this->assertCount(5, $category->components);
|
|
|
|
// $this->assertEquals(5, $category->itemCount());
|
|
|
|
// }
|
2016-03-25 01:18:05 -07:00
|
|
|
}
|