Skip to content

Commit 942d569

Browse files
committed
Add support for doctrine/data-fixtures 2.0
1 parent 537bcb4 commit 942d569

File tree

7 files changed

+26
-13
lines changed

7 files changed

+26
-13
lines changed

.github/workflows/tests.yml

+2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ jobs:
3535
symfony-version: "^7.1"
3636
- php-version: 8.4
3737
symfony-version: "^7.1"
38+
- php-version: 8.4
39+
symfony-version: "^7.2"
3840

3941
services:
4042
mariadb:

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"symfony/yaml": "^5.4 || ^6.3 || ^7.0"
2626
},
2727
"require-dev": {
28-
"doctrine/data-fixtures": "^1.7",
28+
"doctrine/data-fixtures": "^1.7 || ^2.0",
2929
"doctrine/doctrine-bundle": "^2.11",
3030
"doctrine/doctrine-fixtures-bundle": "^3.5.1 || ^4.0",
3131
"doctrine/mongodb-odm-bundle": "^4.4 || ^5.0",

tests/App/DataFixtures/ORM/LoadUserData.php

+7-7
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ public function load(ObjectManager $manager): void
2828

2929
$manager->persist($user);
3030

31-
$this->addReference('user', $user);
32-
33-
$user = new User();
34-
$user->setId(2);
35-
$user->setName('bob bar');
36-
$user->setEmail('[email protected]');
31+
$user2 = new User();
32+
$user2->setId(2);
33+
$user2->setName('bob bar');
34+
$user2->setEmail('[email protected]');
3735

38-
$manager->persist($user);
36+
$manager->persist($user2);
3937
$manager->flush();
38+
39+
$this->addReference('user', $user);
4040
}
4141
}

tests/AppConfigMongodb/DataFixtures/MongoDB/LoadUserDataFixture.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ public function load(ObjectManager $manager): void
3333

3434
$manager->persist($user);
3535

36-
$this->addReference('user', $user);
37-
3836
$user2 = new User();
3937
$user2->setName('alice bar');
4038
$user2->setEmail('[email protected]');
4139

4240
$manager->persist($user2);
4341
$manager->flush();
42+
43+
$this->addReference('user', $user);
4444
}
4545
}

tests/Test/ConfigMongodbTest.php

+12-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
* with this source code in the file LICENSE.
2323
*/
2424

25+
use Composer\InstalledVersions;
2526
use Doctrine\Bundle\MongoDBBundle\DoctrineMongoDBBundle;
2627
use Doctrine\Common\DataFixtures\Executor\MongoDBExecutor;
2728
use Doctrine\Common\DataFixtures\ProxyReferenceRepository;
@@ -61,6 +62,16 @@ protected function setUp(): void
6162
$this->markTestSkipped('Need doctrine/mongodb-odm-bundle package.');
6263
}
6364

65+
// `doctrine/data-fixtures:^2.0` and `doctrine/mongodb-odm-bundle:^4.4` are not compatible
66+
if (class_exists(InstalledVersions::class)) {
67+
$fixturesVersion = InstalledVersions::getVersion('doctrine/data-fixtures');
68+
$bundleVersion = InstalledVersions::getVersion('doctrine/mongodb-odm-bundle');
69+
70+
if (null !== $fixturesVersion && null !== $bundleVersion && version_compare($fixturesVersion, '2.0', '>=') && version_compare($bundleVersion, '5.0', '<')) {
71+
$this->markTestSkipped(sprintf('The installed versions of doctrine/data-fixtures (%s) and doctrine/mongodb-odm-bundle (%s) are not compatible.', $fixturesVersion, $bundleVersion));
72+
}
73+
}
74+
6475
parent::setUp();
6576

6677
self::bootKernel([
@@ -93,7 +104,7 @@ public function testLoadFixturesMongodb(): void
93104
$repository
94105
);
95106

96-
$user1 = $repository->getReference('user');
107+
$user1 = $repository->getReference('user', User::class);
97108

98109
$this->assertSame('foo bar', $user1->getName());
99110
$this->assertSame('[email protected]', $user1->getEmail());

tests/Test/ConfigMysqlTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public function testLoadFixtures(): void
9393
$repository
9494
);
9595

96-
$user1 = $repository->getReference('user');
96+
$user1 = $repository->getReference('user', User::class);
9797

9898
$this->assertSame('foo bar', $user1->getName());
9999
$this->assertSame('[email protected]', $user1->getEmail());

tests/Test/ConfigSqliteTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public function testLoadFixtures(): void
9797
);
9898

9999
/** @var User $user1 */
100-
$user1 = $repository->getReference('user');
100+
$user1 = $repository->getReference('user', User::class);
101101

102102
$this->assertSame(1, $user1->getId());
103103
$this->assertSame('foo bar', $user1->getName());

0 commit comments

Comments
 (0)