Implemented FixtureManagement

This commit is contained in:
Kevin Frantz
2019-02-02 23:02:28 +01:00
parent 52d38a0c84
commit aa735367d9
14 changed files with 549 additions and 293 deletions

View File

@@ -5,8 +5,9 @@ namespace Tests\Integration\DataFixtures;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Doctrine\ORM\EntityManager;
use App\Entity\Source\AbstractSource;
use App\DBAL\Types\SystemSlugType;
use App\Entity\Source\Complex\UserSourceInterface;
use App\Domain\FixtureManagement\FixtureSource\ImpressumFixtureSource;
use App\Domain\FixtureManagement\FixtureSource\GuestUserFixtureSource;
class SourceFixturesIntegrationTest extends KernelTestCase
{
@@ -24,14 +25,14 @@ class SourceFixturesIntegrationTest extends KernelTestCase
public function testImpressumSource(): void
{
$sourceRepository = $this->entityManager->getRepository(AbstractSource::class);
$imprint = $sourceRepository->findOneBySlug(SystemSlugType::IMPRINT);
$imprint = $sourceRepository->findOneBySlug(ImpressumFixtureSource::SLUG);
$this->assertInternalType('string', $imprint->getText());
}
public function testGuestUserSource(): void
{
$sourceRepository = $this->entityManager->getRepository(AbstractSource::class);
$userSource = $sourceRepository->findOneBySlug(SystemSlugType::GUEST_USER);
$userSource = $sourceRepository->findOneBySlug(GuestUserFixtureSource::SLUG);
$this->assertInstanceOf(UserSourceInterface::class, $userSource);
}
}

View File

@@ -0,0 +1,46 @@
<?php
namespace tests\Integration\Domain\FixtureManagement;
use PHPUnit\Framework\TestCase;
use App\Domain\FixtureManagement\FixtureSourceFactory;
use App\Domain\FixtureManagement\FixtureSource\FixtureSourceInterface;
use App\Entity\Source\SourceInterface;
/**
* @author kevinfrantz
*/
class FixtureSourceFactoryTest extends TestCase
{
/**
* @var array|FixtureSourceInterface[]
*/
protected $fixtureSources;
public function setUp(): void
{
$this->fixtureSources = FixtureSourceFactory::getAllFixtureSources();
}
public function testFixtureSourcesSlugs(): void
{
$slugs = [];
foreach ($this->fixtureSources as $fixtureSource) {
$this->assertInstanceOf(FixtureSourceInterface::class, $fixtureSource);
$slug = $fixtureSource->getSlug();
$this->assertIsString($slug);
$this->assertFalse(in_array($slug, $slugs), 'A slug has to be unique');
$slugs[] = $slug;
}
}
public function testFixtureSourcesObjects(): void
{
$objects = [];
foreach ($this->fixtureSources as $fixtureSource) {
$this->assertInstanceOf(SourceInterface::class, $fixtureSource->getORMReadyObject());
$this->assertFalse(in_array($fixtureSource, $objects), 'A slug has to be unique');
$objects[] = $fixtureSource;
}
}
}