brilo-example/tests/Common/Generators/UserGeneratorTrait.php

56 lines
1.6 KiB
PHP
Raw Permalink Normal View History

2024-08-02 12:13:25 +00:00
<?php
declare(strict_types=1);
namespace App\Tests\Common\Generators;
use App\Entity\Database\Users\Address;
use App\Entity\Database\Users\Company;
use App\Entity\Database\Users\User;
use App\Tests\Common\DatabaseTestTrait;
use App\Tests\Common\FakerTrait;
use Doctrine\Common\Collections\ArrayCollection;
trait UserGeneratorTrait
{
use FakerTrait;
use DatabaseTestTrait;
private function createUser(int $id): User
{
$user = new User(
$id,
$this->getFaker()->name(),
$this->getFaker()->userName(),
$this->getFaker()->email(),
$this->getFaker()->phoneNumber(),
$this->getFaker()->url(),
new Address(
1,
null,
$this->getFaker()->streetAddress(),
(string) $this->getFaker()->randomNumber(),
$this->getFaker()->city(),
$this->getFaker()->postcode(),
$this->getFaker()->randomNumber(),
$this->getFaker()->randomNumber(),
),
new Company(
1,
new ArrayCollection(),
$this->getFaker()->company(),
$this->getFaker()->text(10),
$this->getFaker()->text(100)
)
);
$this->getEntityManager()->persist($user->address);
$this->getEntityManager()->persist($user->company);
$this->getEntityManager()->persist($user);
$this->getEntityManager()->refresh($user->address);
$this->getEntityManager()->refresh($user->company);
$this->getEntityManager()->flush();
return $user;
}
}