Skip to content

Commit fe83993

Browse files
authored
Run the tests for the ORM using the native lazy objects when able
1 parent bc76c95 commit fe83993

File tree

12 files changed

+55
-27
lines changed

12 files changed

+55
-27
lines changed

tests/Gedmo/Mapping/MappingTest.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,14 @@ final class MappingTest extends TestCase
4040
protected function setUp(): void
4141
{
4242
$config = new Configuration();
43-
$config->setProxyDir(TESTS_TEMP_DIR);
44-
$config->setProxyNamespace('Gedmo\Mapping\Proxy');
43+
44+
/** @phpstan-ignore-next-line function.alreadyNarrowedType */
45+
if (PHP_VERSION_ID >= 80400 && method_exists($config, 'enableNativeLazyObjects')) {
46+
$config->enableNativeLazyObjects(true);
47+
} else {
48+
$config->setProxyDir(TESTS_TEMP_DIR);
49+
$config->setProxyNamespace('Gedmo\Mapping\Proxy');
50+
}
4551

4652
if (PHP_VERSION_ID >= 80000) {
4753
$config->setMetadataDriverImpl(new AttributeDriver([]));

tests/Gedmo/Mapping/MetadataFactory/CustomDriverTest.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,16 @@ final class CustomDriverTest extends TestCase
3939
protected function setUp(): void
4040
{
4141
$config = new Configuration();
42-
$config->setProxyDir(TESTS_TEMP_DIR);
43-
$config->setProxyNamespace('Gedmo\Mapping\Proxy');
4442
$config->setMetadataDriverImpl(new CustomDriver());
4543

44+
/** @phpstan-ignore-next-line function.alreadyNarrowedType */
45+
if (PHP_VERSION_ID >= 80400 && method_exists($config, 'enableNativeLazyObjects')) {
46+
$config->enableNativeLazyObjects(true);
47+
} else {
48+
$config->setProxyDir(TESTS_TEMP_DIR);
49+
$config->setProxyNamespace('Gedmo\Mapping\Proxy');
50+
}
51+
4652
$conn = [
4753
'driver' => 'pdo_sqlite',
4854
'memory' => true,

tests/Gedmo/Mapping/MetadataFactory/ForcedMetadataTest.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,14 @@ final class ForcedMetadataTest extends TestCase
4141
protected function setUp(): void
4242
{
4343
$config = new Configuration();
44-
$config->setProxyDir(TESTS_TEMP_DIR);
45-
$config->setProxyNamespace('Gedmo\Mapping\Proxy');
44+
45+
/** @phpstan-ignore-next-line function.alreadyNarrowedType */
46+
if (PHP_VERSION_ID >= 80400 && method_exists($config, 'enableNativeLazyObjects')) {
47+
$config->enableNativeLazyObjects(true);
48+
} else {
49+
$config->setProxyDir(TESTS_TEMP_DIR);
50+
$config->setProxyNamespace('Gedmo\Mapping\Proxy');
51+
}
4652

4753
if (PHP_VERSION_ID >= 80000) {
4854
$config->setMetadataDriverImpl(new AttributeDriver([]));

tests/Gedmo/Mapping/ORMMappingTestCase.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,14 @@ final protected function getBasicConfiguration(): Configuration
4343
$config = new Configuration();
4444
$config->setMetadataCache(new ArrayAdapter());
4545
$config->setQueryCache(new ArrayAdapter());
46-
$config->setProxyDir(TESTS_TEMP_DIR);
47-
$config->setProxyNamespace('Gedmo\Mapping\Proxy');
46+
47+
/** @phpstan-ignore-next-line function.alreadyNarrowedType */
48+
if (PHP_VERSION_ID >= 80400 && method_exists($config, 'enableNativeLazyObjects')) {
49+
$config->enableNativeLazyObjects(true);
50+
} else {
51+
$config->setProxyDir(TESTS_TEMP_DIR);
52+
$config->setProxyNamespace('Gedmo\Mapping\Proxy');
53+
}
4854

4955
return $config;
5056
}

tests/Gedmo/Timestampable/TimestampableTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Gedmo\Tests\Timestampable;
1313

1414
use Doctrine\Common\EventManager;
15-
use Doctrine\Persistence\Proxy;
1615
use Gedmo\Tests\Clock;
1716
use Gedmo\Tests\Timestampable\Fixture\Article;
1817
use Gedmo\Tests\Timestampable\Fixture\Author;
@@ -230,7 +229,7 @@ public function testShouldSolveIssue767(): void
230229
$this->em->clear();
231230

232231
$type = $this->em->getReference(Type::class, $type->getId());
233-
static::assertInstanceOf(Proxy::class, $type);
232+
static::assertTrue($this->em->isUninitializedObject($type));
234233

235234
$art = new Article();
236235
$art->setTitle('Art');

tests/Gedmo/Tool/BaseTestCaseORM.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,15 @@ abstract protected function getUsedEntityFixtures(): array;
9696
protected function getDefaultConfiguration(): Configuration
9797
{
9898
$config = new Configuration();
99-
$config->setProxyDir(TESTS_TEMP_DIR);
100-
$config->setProxyNamespace('Proxy');
99+
100+
/** @phpstan-ignore-next-line function.alreadyNarrowedType */
101+
if (PHP_VERSION_ID >= 80400 && method_exists($config, 'enableNativeLazyObjects')) {
102+
$config->enableNativeLazyObjects(true);
103+
} else {
104+
$config->setProxyDir(TESTS_TEMP_DIR);
105+
$config->setProxyNamespace('Gedmo\Mapping\Proxy');
106+
}
107+
101108
$config->setMetadataDriverImpl($this->getMetadataDriverImplementation());
102109
$config->setMiddlewares([
103110
new Middleware($this->queryLogger),

tests/Gedmo/Translatable/Issue/Issue84Test.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Gedmo\Tests\Translatable\Issue;
1313

1414
use Doctrine\Common\EventManager;
15-
use Doctrine\Persistence\Proxy;
1615
use Gedmo\Tests\Tool\BaseTestCaseORM;
1716
use Gedmo\Tests\Translatable\Fixture\Article;
1817
use Gedmo\Translatable\Entity\Translation;
@@ -51,7 +50,7 @@ public function testIssue84(): void
5150
$this->em->clear();
5251

5352
$article = $this->em->getReference(Article::class, 1);
54-
static::assertInstanceOf(Proxy::class, $article);
53+
static::assertTrue($this->em->isUninitializedObject($article));
5554

5655
$trans = $repo->findTranslations($article);
5756
static::assertCount(1, $trans);

tests/Gedmo/Translator/TranslatableTest.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Gedmo\Tests\Translator;
1313

1414
use Doctrine\Common\EventManager;
15-
use Doctrine\Persistence\Proxy;
1615
use Gedmo\Tests\Tool\BaseTestCaseORM;
1716
use Gedmo\Tests\Translator\Fixture\Person;
1817
use Gedmo\Tests\Translator\Fixture\PersonCustom;
@@ -114,7 +113,7 @@ public function testShouldTranslateRelation(): void
114113
$person = $this->em->getRepository(Person::class)->findOneBy(['name' => 'Jen']);
115114
static::assertSame('Женя', $person->translate('ru')->getName());
116115
$parent = $person->getParent();
117-
static::assertInstanceOf(Proxy::class, $parent);
116+
static::assertTrue($this->em->isUninitializedObject($parent));
118117
static::assertInstanceOf(Person::class, $parent);
119118
static::assertSame('Женя starshai', $parent->translate('ru')->getName());
120119
static::assertSame('zenia', $parent->translate('fr')->getName());
@@ -133,7 +132,7 @@ public function testShouldHandleDomainObjectProxy(): void
133132
$this->em->clear();
134133

135134
$personProxy = $this->em->getReference(Person::class, ['id' => 1]);
136-
static::assertInstanceOf(Proxy::class, $personProxy);
135+
static::assertTrue($this->em->isUninitializedObject($personProxy));
137136
$name = $personProxy->translate('ru_RU')->getName();
138137
static::assertSame('Женя', $name);
139138
}
@@ -153,7 +152,7 @@ public function testTranslatableProxyWithUpperCaseProperty(): void
153152
$this->em->clear();
154153

155154
$personProxy = $this->em->getReference(Person::class, ['id' => 1]);
156-
static::assertInstanceOf(Proxy::class, $personProxy);
155+
static::assertTrue($this->em->isUninitializedObject($personProxy));
157156
$name = $personProxy->translate('ru_RU')->getName();
158157
static::assertSame('Женя', $name);
159158
$lastName = $personProxy->translate('ru_RU')->getLastName();

tests/Gedmo/Tree/MaterializedPathORMRepositoryTest.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Gedmo\Tests\Tree;
1313

1414
use Doctrine\Common\EventManager;
15-
use Doctrine\Persistence\Proxy;
1615
use Gedmo\Exception\InvalidArgumentException;
1716
use Gedmo\Tests\Tool\BaseTestCaseORM;
1817
use Gedmo\Tests\Tree\Fixture\MPCategory;
@@ -332,8 +331,7 @@ public function testIssue458(): void
332331
$newNode = $this->createCategory();
333332
$parent = $node->getParent();
334333

335-
static::assertInstanceOf(Proxy::class, $parent);
336-
static::assertFalse($parent->__isInitialized());
334+
static::assertTrue($this->em->isUninitializedObject($parent));
337335

338336
$newNode->setTitle('New Node');
339337
$newNode->setParent($parent);

tests/Gedmo/Tree/TranslatableSluggableTreeTest.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Gedmo\Tests\Tree;
1313

1414
use Doctrine\Common\EventManager;
15-
use Doctrine\Persistence\Proxy;
1615
use Gedmo\Sluggable\SluggableListener;
1716
use Gedmo\Tests\Tool\BaseTestCaseORM;
1817
use Gedmo\Tests\Tree\Fixture\Article;
@@ -94,7 +93,7 @@ public function testTranslations(): void
9493
static::assertSame('Vegitables', $vegies->getTitle());
9594
$food = $vegies->getParent();
9695
// test if proxy triggers postLoad event
97-
static::assertInstanceOf(Proxy::class, $food);
96+
static::assertTrue($this->em->isUninitializedObject($food));
9897
static::assertInstanceOf(BehavioralCategory::class, $food);
9998
static::assertSame('Food', $food->getTitle());
10099

@@ -104,7 +103,7 @@ public function testTranslations(): void
104103
$vegies = $repo->find(4);
105104
static::assertSame('Gemüse', $vegies->getTitle());
106105
$food = $vegies->getParent();
107-
static::assertInstanceOf(Proxy::class, $food);
106+
static::assertTrue($this->em->isUninitializedObject($food));
108107
static::assertInstanceOf(BehavioralCategory::class, $food);
109108
static::assertSame('Lebensmittel', $food->getTitle());
110109
}

0 commit comments

Comments
 (0)