Skip to content

Commit 6d00cf4

Browse files
committed
skip legacy extractor test with symfony/property-info 8.0+
1 parent 8eff499 commit 6d00cf4

File tree

1 file changed

+36
-24
lines changed

1 file changed

+36
-24
lines changed

src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -117,17 +117,25 @@ public function testTestGetPropertiesWithEmbedded()
117117
#[IgnoreDeprecations]
118118
#[Group('legacy')]
119119
#[DataProvider('legacyTypesProvider')]
120-
public function testExtractLegacy(string $property, ?array $type = null)
120+
public function testExtractLegacy(string $property, ?callable $typeFactory = null)
121121
{
122+
if (!class_exists(LegacyType::class)) {
123+
$this->markTestSkipped('This test requires symfony/property-info < 8.0.');
124+
}
125+
122126
$this->expectUserDeprecationMessage('Since symfony/property-info 7.3: The "Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor::getTypes()" method is deprecated, use "Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor::getType()" instead.');
123127

124-
$this->assertEquals($type, $this->createExtractor()->getTypes(DoctrineDummy::class, $property, []));
128+
$this->assertEquals(null !== $typeFactory ? $typeFactory() : null, $this->createExtractor()->getTypes(DoctrineDummy::class, $property, []));
125129
}
126130

127131
#[IgnoreDeprecations]
128132
#[Group('legacy')]
129133
public function testExtractWithEmbeddedLegacy()
130134
{
135+
if (!class_exists(LegacyType::class)) {
136+
$this->markTestSkipped('This test requires symfony/property-info < 8.0.');
137+
}
138+
131139
$this->expectUserDeprecationMessage('Since symfony/property-info 7.3: The "Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor::getTypes()" method is deprecated, use "Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor::getType()" instead.');
132140

133141
$expectedTypes = [new LegacyType(
@@ -149,6 +157,10 @@ public function testExtractWithEmbeddedLegacy()
149157
#[Group('legacy')]
150158
public function testExtractEnumLegacy()
151159
{
160+
if (!class_exists(LegacyType::class)) {
161+
$this->markTestSkipped('This test requires symfony/property-info < 8.0.');
162+
}
163+
152164
$this->expectUserDeprecationMessage('Since symfony/property-info 7.3: The "Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor::getTypes()" method is deprecated, use "Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor::getType()" instead.');
153165

154166
$this->assertEquals([new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, EnumString::class)], $this->createExtractor()->getTypes(DoctrineEnum::class, 'enumString', []));
@@ -164,68 +176,68 @@ public static function legacyTypesProvider(): array
164176
{
165177
// DBAL 4 has a special fallback strategy for BINGINT (int -> string)
166178
if (!method_exists(BigIntType::class, 'getName')) {
167-
$expectedBingIntType = [new LegacyType(LegacyType::BUILTIN_TYPE_INT), new LegacyType(LegacyType::BUILTIN_TYPE_STRING)];
179+
$expectedBingIntType = fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_INT), new LegacyType(LegacyType::BUILTIN_TYPE_STRING)];
168180
} else {
169-
$expectedBingIntType = [new LegacyType(LegacyType::BUILTIN_TYPE_STRING)];
181+
$expectedBingIntType = fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_STRING)];
170182
}
171183

172184
return [
173-
['id', [new LegacyType(LegacyType::BUILTIN_TYPE_INT)]],
174-
['guid', [new LegacyType(LegacyType::BUILTIN_TYPE_STRING)]],
185+
['id', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_INT)]],
186+
['guid', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_STRING)]],
175187
['bigint', $expectedBingIntType],
176-
['time', [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'DateTime')]],
177-
['timeImmutable', [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'DateTimeImmutable')]],
178-
['dateInterval', [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'DateInterval')]],
179-
['float', [new LegacyType(LegacyType::BUILTIN_TYPE_FLOAT)]],
180-
['decimal', [new LegacyType(LegacyType::BUILTIN_TYPE_STRING)]],
181-
['bool', [new LegacyType(LegacyType::BUILTIN_TYPE_BOOL)]],
182-
['binary', [new LegacyType(LegacyType::BUILTIN_TYPE_RESOURCE)]],
183-
['jsonArray', [new LegacyType(LegacyType::BUILTIN_TYPE_ARRAY, false, null, true)]],
184-
['foo', [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, true, 'Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineRelation')]],
185-
['bar', [new LegacyType(
188+
['time', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'DateTime')]],
189+
['timeImmutable', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'DateTimeImmutable')]],
190+
['dateInterval', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'DateInterval')]],
191+
['float', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_FLOAT)]],
192+
['decimal', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_STRING)]],
193+
['bool', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_BOOL)]],
194+
['binary', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_RESOURCE)]],
195+
['jsonArray', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_ARRAY, false, null, true)]],
196+
['foo', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, true, 'Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineRelation')]],
197+
['bar', fn () => [new LegacyType(
186198
LegacyType::BUILTIN_TYPE_OBJECT,
187199
false,
188200
'Doctrine\Common\Collections\Collection',
189201
true,
190202
new LegacyType(LegacyType::BUILTIN_TYPE_INT),
191203
new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineRelation')
192204
)]],
193-
['indexedRguid', [new LegacyType(
205+
['indexedRguid', fn () => [new LegacyType(
194206
LegacyType::BUILTIN_TYPE_OBJECT,
195207
false,
196208
'Doctrine\Common\Collections\Collection',
197209
true,
198210
new LegacyType(LegacyType::BUILTIN_TYPE_STRING),
199211
new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineRelation')
200212
)]],
201-
['indexedBar', [new LegacyType(
213+
['indexedBar', fn () => [new LegacyType(
202214
LegacyType::BUILTIN_TYPE_OBJECT,
203215
false,
204216
'Doctrine\Common\Collections\Collection',
205217
true,
206218
new LegacyType(LegacyType::BUILTIN_TYPE_STRING),
207219
new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineRelation')
208220
)]],
209-
['indexedFoo', [new LegacyType(
221+
['indexedFoo', fn () => [new LegacyType(
210222
LegacyType::BUILTIN_TYPE_OBJECT,
211223
false,
212224
'Doctrine\Common\Collections\Collection',
213225
true,
214226
new LegacyType(LegacyType::BUILTIN_TYPE_STRING),
215227
new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, 'Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineRelation')
216228
)]],
217-
['indexedBaz', [new LegacyType(
229+
['indexedBaz', fn () => [new LegacyType(
218230
LegacyType::BUILTIN_TYPE_OBJECT,
219231
false,
220232
Collection::class,
221233
true,
222234
new LegacyType(LegacyType::BUILTIN_TYPE_INT),
223235
new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, DoctrineRelation::class)
224236
)]],
225-
['simpleArray', [new LegacyType(LegacyType::BUILTIN_TYPE_ARRAY, false, null, true, new LegacyType(LegacyType::BUILTIN_TYPE_INT), new LegacyType(LegacyType::BUILTIN_TYPE_STRING))]],
237+
['simpleArray', fn () => [new LegacyType(LegacyType::BUILTIN_TYPE_ARRAY, false, null, true, new LegacyType(LegacyType::BUILTIN_TYPE_INT), new LegacyType(LegacyType::BUILTIN_TYPE_STRING))]],
226238
['customFoo', null],
227239
['notMapped', null],
228-
['indexedByDt', [new LegacyType(
240+
['indexedByDt', fn () => [new LegacyType(
229241
LegacyType::BUILTIN_TYPE_OBJECT,
230242
false,
231243
Collection::class,
@@ -234,15 +246,15 @@ public static function legacyTypesProvider(): array
234246
new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, DoctrineRelation::class)
235247
)]],
236248
['indexedByCustomType', null],
237-
['indexedBuz', [new LegacyType(
249+
['indexedBuz', fn () => [new LegacyType(
238250
LegacyType::BUILTIN_TYPE_OBJECT,
239251
false,
240252
Collection::class,
241253
true,
242254
new LegacyType(LegacyType::BUILTIN_TYPE_STRING),
243255
new LegacyType(LegacyType::BUILTIN_TYPE_OBJECT, false, DoctrineRelation::class)
244256
)]],
245-
['dummyGeneratedValueList', [new LegacyType(
257+
['dummyGeneratedValueList', fn () => [new LegacyType(
246258
LegacyType::BUILTIN_TYPE_OBJECT,
247259
false,
248260
'Doctrine\Common\Collections\Collection',

0 commit comments

Comments
 (0)