56 lines
1.6 KiB
PHP
56 lines
1.6 KiB
PHP
<?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;
|
|
}
|
|
}
|