63 lines
2.1 KiB
PHP
63 lines
2.1 KiB
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace App\Tests\Entity;
|
|
|
|
use App\Entity\FoodOrder;
|
|
use App\Entity\FoodVendor;
|
|
use App\Entity\MenuItem;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Symfony\Component\Uid\Ulid;
|
|
|
|
final class FoodVendorTest extends TestCase
|
|
{
|
|
public function testFoodVendor(): void
|
|
{
|
|
$vendor = new FoodVendor;
|
|
$vendor->setName('Test');
|
|
$this->assertEquals('Test', $vendor->getName());
|
|
$this->assertInstanceOf(Ulid::class, $vendor->getId());
|
|
|
|
$this->assertCount(0, $vendor->getFoodOrders());
|
|
$order1 = new FoodOrder;
|
|
$vendor->addFoodOrder($order1);
|
|
$vendor->addFoodOrder($order1);
|
|
$this->assertCount(1, $vendor->getFoodOrders());
|
|
$this->assertSame($vendor, $order1->getFoodVendor());
|
|
$vendor->removeFoodOrder($order1);
|
|
$this->assertCount(0, $vendor->getFoodOrders());
|
|
$this->assertNull($order1->getFoodVendor());
|
|
|
|
}
|
|
|
|
public function testMenuItem(): void
|
|
{
|
|
$vendor = new FoodVendor;
|
|
$menuItem1 = new MenuItem;
|
|
$menuItem2 = new MenuItem;
|
|
$this->assertCount(0, $vendor->getMenuItems());
|
|
$vendor->addMenuItem($menuItem1);
|
|
$vendor->addMenuItem($menuItem1);
|
|
$this->assertCount(1, $vendor->getMenuItems());
|
|
$vendor->removeMenuItem($menuItem1);
|
|
$this->assertCount(0, $vendor->getMenuItems());
|
|
$this->assertNull($menuItem1->getFoodVendor());
|
|
$vendor->addMenuItem($menuItem1);
|
|
$menuItem2->delete();
|
|
$vendor->addMenuItem($menuItem2);
|
|
$this->assertCount(1, $vendor->getMenuItems());
|
|
$this->assertCount(2, $vendor->getMenuItems(true));
|
|
}
|
|
|
|
public function testRemoveForeignMenuItem(): void
|
|
{
|
|
$vendor1 = new FoodVendor;
|
|
$vendor2 = new FoodVendor;
|
|
$item1 = new MenuItem;
|
|
|
|
$vendor1->addMenuItem($item1);
|
|
$this->assertCount(1, $vendor1->getMenuItems());
|
|
$vendor2->removeMenuItem($item1);
|
|
$this->assertCount(1, $vendor1->getMenuItems());
|
|
$this->assertSame($vendor1, $item1->getFoodVendor());
|
|
}
|
|
}
|