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;
 | 
						|
    }
 | 
						|
}
 |