diff --git a/Loader/SymfonyFixturesLoader.php b/Loader/SymfonyFixturesLoader.php index c61c6356..69376c2a 100644 --- a/Loader/SymfonyFixturesLoader.php +++ b/Loader/SymfonyFixturesLoader.php @@ -55,6 +55,8 @@ public function addFixture(FixtureInterface $fixture) : void if ($fixture instanceof FixtureGroupInterface) { $this->addGroupsFixtureMapping($class, $fixture::getGroups()); + } else { + $this->addGroupsFixtureMapping($class, ['Default']); } parent::addFixture($fixture); diff --git a/Tests/Fixtures/FooBundle/DataFixtures/NoGroupFixtures.php b/Tests/Fixtures/FooBundle/DataFixtures/NoGroupFixtures.php new file mode 100644 index 00000000..ef764863 --- /dev/null +++ b/Tests/Fixtures/FooBundle/DataFixtures/NoGroupFixtures.php @@ -0,0 +1,16 @@ +addServices(static function (ContainerBuilder $c) : void { + // has a "staging" group via the getGroups() method + $c->autowire(OtherFixtures::class) + ->addTag(FixturesCompilerPass::FIXTURE_TAG); + + // no getGroups() method + $c->autowire(NoGroupFixtures::class) + ->addTag(FixturesCompilerPass::FIXTURE_TAG); + + $c->setAlias('test.doctrine.fixtures.loader', new Alias('doctrine.fixtures.loader', true)); + }); + $kernel->boot(); + $container = $kernel->getContainer(); + + /** @var ContainerAwareLoader $loader */ + $loader = $container->get('test.doctrine.fixtures.loader'); + + $actualFixtures = $loader->getFixtures(['Default']); + + $this->assertCount(1, $actualFixtures); + $actualFixtureClasses = array_map(static function ($fixture) { + return get_class($fixture); + }, $actualFixtures); + + $this->assertSame([ + NoGroupFixtures::class, + ], $actualFixtureClasses); + } } class IntegrationTestKernel extends Kernel