infinito/application/tests/Unit/Repository/UserSourceRepositoryTest.php

98 lines
2.7 KiB
PHP
Raw Normal View History

2018-11-24 17:40:36 +01:00
<?php
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;
}
}