ebs/tests/Integration/Repository/CategoryRepositoryTest.php
2023-12-21 08:49:38 +01:00

49 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Tests\Integration\Repository;
use App\Entity\Category;
use App\Enum\Product\ProductType;
use App\Test\ContainerRepositoryTrait;
use App\Tests\TestReference;
use Hautelook\AliceBundle\PhpUnit\RefreshDatabaseTrait;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
final class CategoryRepositoryTest extends KernelTestCase
{
use ContainerRepositoryTrait;
use RefreshDatabaseTrait;
private const COUNT = TestReference::CATEGORIES_COUNT;
public function testCategoryRepositoty(): void
{
self::bootKernel();
$repo = $this->getCategoryRepository();
$count = $repo->count([]);
self::assertSame(self::COUNT, $count);
$category = new Category();
$category->setName('grp');
$category->setType(ProductType::OBJECT);
$repo->save($category, true);
$count = $repo->count([]);
self::assertSame(self::COUNT + 1, $count);
$repo->remove($category, true);
$count = $repo->count([]);
self::assertSame(self::COUNT, $count);
$child = new Category();
$child->setName('child');
$child->setType(ProductType::OBJECT);
$category->addChild($child);
self::assertTrue($category->getChildren()->contains($child));
$category->removeChild($child);
self::assertFalse($category->getChildren()->contains($child));
}
}