diff --git a/application/src/DBAL/Types/SystemSlugType.php b/application/src/DBAL/Types/SystemSlugType.php index d7fc1f1..58c45fb 100644 --- a/application/src/DBAL/Types/SystemSlugType.php +++ b/application/src/DBAL/Types/SystemSlugType.php @@ -13,7 +13,10 @@ final class SystemSlugType extends AbstractEnumType { public const IMPRINT = 'IMPRINT'; + public const GUEST_USER = 'GUEST_USER'; + protected static $choices = [ self::IMPRINT => 'imprint', + self::GUEST_USER => 'guest user', ]; } diff --git a/application/src/DataFixtures/SourceFixtures.php b/application/src/DataFixtures/SourceFixtures.php index 86be2c9..08298f6 100644 --- a/application/src/DataFixtures/SourceFixtures.php +++ b/application/src/DataFixtures/SourceFixtures.php @@ -7,15 +7,21 @@ use Doctrine\Common\Persistence\ObjectManager; use App\Entity\Source\Primitive\Text\TextSource; use App\Entity\Source\Primitive\Text\TextSourceInterface; use App\DBAL\Types\SystemSlugType; +use App\Entity\Source\Complex\UserSource; +use App\Entity\Source\Complex\UserSourceInterface; class SourceFixtures extends Fixture { public function load(ObjectManager $manager) { $manager->persist($this->getImpressum()); + $manager->persist($this->getGuestUser()); $manager->flush(); } + /** + * @return TextSourceInterface The example source for the impressum + */ private function getImpressum(): TextSourceInterface { $source = new TextSource(); @@ -24,4 +30,15 @@ class SourceFixtures extends Fixture return $source; } + + /** + * @return UserSourceInterface The UserSource which should be used for the anonymous user + */ + private function getGuestUser(): UserSourceInterface + { + $source = new UserSource(); + $source->setSlug(SystemSlugType::GUEST_USER); + + return $source; + } } diff --git a/application/tests/Integration/FixturesIntegrationTest.php b/application/tests/Integration/DataFixtures/SourceFixturesIntegrationTest.php similarity index 56% rename from application/tests/Integration/FixturesIntegrationTest.php rename to application/tests/Integration/DataFixtures/SourceFixturesIntegrationTest.php index da258de..a0138da 100644 --- a/application/tests/Integration/FixturesIntegrationTest.php +++ b/application/tests/Integration/DataFixtures/SourceFixturesIntegrationTest.php @@ -1,14 +1,14 @@ entityManager = static::$kernel->getContainer()->get('doctrine')->getManager(); } - public function testImpressum(): void + public function testImpressumSource(): void { $sourceRepository = $this->entityManager->getRepository(AbstractSource::class); - /** - * @var TextSourceInterface - */ $imprint = $sourceRepository->findOneBy(['slug' => SystemSlugType::IMPRINT]); $this->assertInternalType('string', $imprint->getText()); } + + public function testGuestUserSource(): void + { + $sourceRepository = $this->entityManager->getRepository(AbstractSource::class); + $userSource = $sourceRepository->findOneBy(['slug' => SystemSlugType::GUEST_USER]); + $this->assertInstanceOf(UserSourceInterface::class, $userSource); + } }