futtern/tests/Unit/Entity/MenuItemTest.php
lubiana 9c98735db7
All checks were successful
/ ls (pull_request) Successful in 1m27s
/ ls (push) Successful in 1m24s
/ ls (release) Successful in 49s
migrate test cases to use pestphp syntax
2025-02-01 22:37:07 +01:00

53 lines
1.5 KiB
PHP

<?php declare(strict_types=1);
namespace App\Tests\Unit\Entity;
use App\Entity\FoodVendor;
use App\Entity\MenuItem;
use DateTimeImmutable;
use function describe;
use function test;
describe(MenuItem::class, function (): void {
test('MenuItem entity', function (): void {
$item = new MenuItem;
$item->setName('Test');
$this->assertEquals('Test', $item->getName());
$vendor = new FoodVendor;
$vendor->setName('Test');
$item->setFoodVendor($vendor);
$this->assertEquals($vendor, $item->getFoodVendor());
$this->assertFalse($item->isDeleted());
$this->assertNull($item->getDeletedAt());
$item->delete();
$this->assertTrue($item->isDeleted());
$this->assertInstanceOf(DateTimeImmutable::class, $item->getDeletedAt());
});
test('MenuItem alias', function (): void {
$item = new MenuItem;
$item->setName('Test');
$this->assertEquals('Test', $item->getName());
$vendor = new FoodVendor;
$vendor->setName('Test');
$item->setFoodVendor($vendor);
$item2 = new MenuItem;
$item2->setName('Test2');
$item2->setFoodVendor($vendor);
$item->addAlias($item2);
$this->assertCount(1, $item->getAliases());
$this->assertSame($item, $item2->getAliasOf());
$item->removeAlias($item2);
$this->assertCount(0, $item->getAliases());
$this->assertNull($item2->getAliasOf());
});
})->covers(MenuItem::class, FoodVendor::class);