2018-11-24 17:40:36 +01:00
|
|
|
<?php
|
2018-11-24 18:13:04 +01:00
|
|
|
|
2018-11-24 17:40:36 +01:00
|
|
|
namespace tests\Unit\Repository;
|
|
|
|
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
|
|
|
use Doctrine\ORM\EntityManager;
|
|
|
|
use App\Entity\UserInterface;
|
|
|
|
use App\Repository\UserSourceRepository;
|
|
|
|
use App\Entity\Source\Complex\UserSourceInterface;
|
|
|
|
use App\Entity\Source\Complex\UserSource;
|
|
|
|
|
|
|
|
class UserSourceRepositoryTest extends KernelTestCase
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var EntityManager
|
|
|
|
*/
|
|
|
|
protected $entityManager;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var UserSourceRepository
|
|
|
|
*/
|
|
|
|
protected $userSourceRepository;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var UserSourceInterface
|
|
|
|
*/
|
|
|
|
protected $loadedUserSource;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var UserInterface
|
|
|
|
*/
|
|
|
|
protected $user;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var UserSourceInterface
|
|
|
|
*/
|
|
|
|
protected $userSource;
|
|
|
|
|
|
|
|
public function setUp(): void
|
|
|
|
{
|
|
|
|
$kernel = self::bootKernel();
|
|
|
|
$this->entityManager = $kernel->getContainer()
|
|
|
|
->get('doctrine')
|
|
|
|
->getManager();
|
|
|
|
$this->userSourceRepository = $this->entityManager->getRepository(UserSource::class);
|
|
|
|
$this->userSource = new UserSource();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testMemberships(): void
|
|
|
|
{
|
|
|
|
$userSource2 = new UserSource();
|
|
|
|
$this->userSource->getMemberships()->add($userSource2);
|
|
|
|
$this->entityManager->persist($this->userSource);
|
|
|
|
$this->entityManager->flush();
|
|
|
|
$userSource2Id = $userSource2->getId();
|
|
|
|
$userSourceId = $this->userSource->getId();
|
|
|
|
$this->loadedUserSource = $this->userSourceRepository->find($userSourceId);
|
|
|
|
$this->assertGreaterThan(0, $userSource2Id);
|
|
|
|
$this->assertEquals($userSource2, $this->loadedUserSource->getMemberships()->get(0));
|
|
|
|
$this->deleteUserSource();
|
|
|
|
$this->assertGreaterThan(0, $userSource2Id);
|
|
|
|
$this->entityManager->remove($userSource2);
|
|
|
|
$this->entityManager->flush();
|
|
|
|
$this->assertNull($this->userSourceRepository->find($userSource2Id));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testCreation(): void
|
|
|
|
{
|
|
|
|
$this->entityManager->persist($this->userSource);
|
|
|
|
$this->entityManager->flush();
|
|
|
|
$userSourceId = $this->userSource->getId();
|
|
|
|
/*
|
|
|
|
* @var UserSourceInterface
|
|
|
|
*/
|
|
|
|
$this->loadedUserSource = $this->userSourceRepository->find($userSourceId);
|
|
|
|
$this->assertEquals($userSourceId, $this->loadedUserSource->getId());
|
|
|
|
$this->deleteUserSource();
|
|
|
|
}
|
|
|
|
|
|
|
|
private function deleteUserSource(): void
|
|
|
|
{
|
|
|
|
$this->entityManager->remove($this->loadedUserSource);
|
|
|
|
$this->entityManager->flush();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritdoc}
|
|
|
|
*
|
|
|
|
* @see \Symfony\Bundle\FrameworkBundle\Test\KernelTestCase::tearDown()
|
|
|
|
*/
|
|
|
|
protected function tearDown(): void
|
|
|
|
{
|
|
|
|
parent::tearDown();
|
|
|
|
$this->entityManager->close();
|
|
|
|
$this->entityManager = null;
|
|
|
|
}
|
|
|
|
}
|