‪TYPO3CMS  ‪main
ColumnMapFactoryTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
20 use PHPUnit\Framework\Attributes\DataProvider;
21 use PHPUnit\Framework\Attributes\Test;
28 use TYPO3\TestingFramework\Core\Functional\FunctionalTestCase;
29 
30 final class ‪ColumnMapFactoryTest extends FunctionalTestCase
31 {
32  protected bool ‪$initializeDatabase = false;
33 
35 
36  protected function ‪setUp(): void
37  {
38  parent::setUp();
39  $this->columnMapFactory = $this->get(ColumnMapFactory::class);
40  }
41 
42  public static function ‪createWithGroupTypeDataProvider(): \Generator
43  {
44  $columnName = 'group';
45  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
46  $expectedColumnMap = new ‪ColumnMap($columnName);
47  $expectedColumnMap->setType(TableColumnType::GROUP);
48  $expectedColumnMap->setTypeOfRelation(Relation::HAS_MANY);
49  yield 'columns configuration is initialized for type group' => [
50  'columnName' => $columnName,
51  'columnConfiguration' => [
52  'config' => [
53  'type' => 'group',
54  ],
55  ],
56  'propertyName' => $propertyName,
57  'expectedColumnMap' => $expectedColumnMap,
58  ];
59 
60  $columnName = 'group_with_maxitems_1';
61  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
62  $expectedColumnMap = new ‪ColumnMap($columnName);
63  $expectedColumnMap->setType(TableColumnType::GROUP);
64  yield 'columns configuration is initialized with maxitems = 1 evaluation for type group' => [
65  'columnName' => $columnName,
66  'columnConfiguration' => [
67  'config' => [
68  'type' => 'group',
69  'maxitems' => '1',
70  ],
71  ],
72  'propertyName' => $propertyName,
73  'expectedColumnMap' => $expectedColumnMap,
74  ];
75 
76  $columnName = 'group_with_maxitems_10';
77  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
78  $expectedColumnMap = new ‪ColumnMap($columnName);
79  $expectedColumnMap->setType(TableColumnType::GROUP);
80  $expectedColumnMap->setTypeOfRelation(Relation::HAS_MANY);
81  yield 'columns configuration is initialized with maxitems > 1 evaluation for type group' => [
82  'columnName' => $columnName,
83  'columnConfiguration' => [
84  'config' => [
85  'type' => 'group',
86  'maxitems' => '10',
87  ],
88  ],
89  'propertyName' => $propertyName,
90  'expectedColumnMap' => $expectedColumnMap,
91  ];
92  }
93 
94  #[DataProvider('createWithGroupTypeDataProvider')]
95  #[Test]
96  public function ‪createWithGroupType(string $columnName, array $columnConfiguration, string $propertyName, ‪ColumnMap $expectedColumnMap): void
97  {
98  self::assertEquals(
99  $expectedColumnMap,
100  $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class)
101  );
102  }
103 
104  public static function ‪createWithSelectTypeDataProvider(): \Generator
105  {
106  $columnName = 'has_one';
107  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
108  $expectedColumnMap = new ‪ColumnMap($columnName);
109  $expectedColumnMap->setType(TableColumnType::SELECT);
110  $expectedColumnMap->setTypeOfRelation(Relation::HAS_ONE);
111  $expectedColumnMap->setChildTableName('tx_myextension_bar');
112  $expectedColumnMap->setParentKeyFieldName('parentid');
113  yield 'setRelations detects one to one relation with legacy "Tx_Foo_Bar" class name schema' => [
114  'columnName' => $columnName,
115  'columnConfiguration' => [
116  'config' => [
117  'type' => 'select',
118  'foreign_table' => 'tx_myextension_bar',
119  'foreign_field' => 'parentid',
120  ],
121  ],
122  'propertyName' => $propertyName,
123  'expectedColumnMap' => $expectedColumnMap,
124  ];
125 
126  $columnName = 'has_one_via_intermediate_table';
127  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
128  $expectedColumnMap = new ‪ColumnMap($columnName);
129  $expectedColumnMap->setType(TableColumnType::SELECT);
130  $expectedColumnMap->setTypeOfRelation(Relation::HAS_AND_BELONGS_TO_MANY);
131  $expectedColumnMap->setRelationTableName('tx_myextension_mm');
132  $expectedColumnMap->setChildTableName('tx_myextension_bar');
133  $expectedColumnMap->setChildSortByFieldName('sorting');
134  $expectedColumnMap->setParentKeyFieldName('uid_local');
135  $expectedColumnMap->setChildKeyFieldName('uid_foreign');
136  yield 'setRelations detects one to one relation with intermediate table' => [
137  'columnName' => $columnName,
138  'columnConfiguration' => [
139  'config' => [
140  'type' => 'select',
141  'foreign_table' => 'tx_myextension_bar',
142  'MM' => 'tx_myextension_mm',
143  ],
144  ],
145  'propertyName' => $propertyName,
146  'expectedColumnMap' => $expectedColumnMap,
147  ];
148 
149  $columnName = 'has_many';
150  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
151  $expectedColumnMap = new ‪ColumnMap($columnName);
152  $expectedColumnMap->setType(TableColumnType::SELECT);
153  $expectedColumnMap->setTypeOfRelation(Relation::HAS_MANY);
154  $expectedColumnMap->setChildTableName('tx_myextension_bar');
155  $expectedColumnMap->setParentTableFieldName('parenttable');
156  $expectedColumnMap->setParentKeyFieldName('parentid');
157  yield 'setRelations detects one to many relation' => [
158  'columnName' => $columnName,
159  'columnConfiguration' => [
160  'config' => [
161  'type' => 'select',
162  'foreign_table' => 'tx_myextension_bar',
163  'foreign_field' => 'parentid',
164  'foreign_table_field' => 'parenttable',
165  ],
166  ],
167  'propertyName' => $propertyName,
168  'expectedColumnMap' => $expectedColumnMap,
169  ];
170 
171  $columnName = 'virtual';
172  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
173  $expectedColumnMap = new ‪ColumnMap($columnName);
174  $expectedColumnMap->setType(TableColumnType::SELECT);
175  yield 'setRelations detects select renderType selectSingle as non-relational' => [
176  'columnName' => $columnName,
177  'columnConfiguration' => [
178  'config' => [
179  'type' => 'select',
180  'renderType' => 'selectSingle',
181  'items' => [
182  ['One', 1],
183  ['Two', 2],
184  ['Three', 3],
185  ],
186  ],
187  ],
188  'propertyName' => $propertyName,
189  'expectedColumnMap' => $expectedColumnMap,
190  ];
191 
192  $columnName = 'has_and_belongs_to_many';
193  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
194  $expectedColumnMap = new ‪ColumnMap($columnName);
195  $expectedColumnMap->setType(TableColumnType::SELECT);
196  $expectedColumnMap->setTypeOfRelation(Relation::HAS_AND_BELONGS_TO_MANY);
197  $expectedColumnMap->setRelationTableName('tx_myextension_mm');
198  $expectedColumnMap->setChildTableName('tx_myextension_bar');
199  $expectedColumnMap->setChildSortByFieldName('sorting');
200  $expectedColumnMap->setParentKeyFieldName('uid_local');
201  $expectedColumnMap->setChildKeyFieldName('uid_foreign');
202  yield 'setRelations detects many to many relation of type select' => [
203  'columnName' => $columnName,
204  'columnConfiguration' => [
205  'config' => [
206  'type' => 'select',
207  'foreign_table' => 'tx_myextension_bar',
208  'MM' => 'tx_myextension_mm',
209  ],
210  ],
211  'propertyName' => $propertyName,
212  'expectedColumnMap' => $expectedColumnMap,
213  ];
214  }
215 
216  #[DataProvider('createWithSelectTypeDataProvider')]
217  #[Test]
218  public function ‪createWithSelectType(string $columnName, array $columnConfiguration, string $propertyName, ‪ColumnMap $expectedColumnMap): void
219  {
220  self::assertEquals(
221  $expectedColumnMap,
222  $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class)
223  );
224  }
225 
226  public static function ‪createWithFolderTypeDataProvider(): \Generator
227  {
228  $columnName = 'folder';
229  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
230  $expectedColumnMap = new ‪ColumnMap($columnName);
231  $expectedColumnMap->setType(TableColumnType::FOLDER);
232  $expectedColumnMap->setTypeOfRelation(Relation::HAS_MANY);
233  yield 'columns configuration is initialized for type folder' => [
234  'columnName' => $columnName,
235  'columnConfiguration' => [
236  'config' => [
237  'type' => 'folder',
238  ],
239  ],
240  'propertyName' => $propertyName,
241  'expectedColumnMap' => $expectedColumnMap,
242  ];
243  }
244 
245  #[DataProvider('createWithFolderTypeDataProvider')]
246  #[Test]
247  public function ‪createWithFolderType(string $columnName, array $columnConfiguration, string $propertyName, ‪ColumnMap $expectedColumnMap): void
248  {
249  self::assertEquals(
250  $expectedColumnMap,
251  $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class)
252  );
253  }
254 
255  public static function ‪createWithInlineTypeDataProvider(): \Generator
256  {
257  $columnName = 'has_and_belongs_to_many';
258  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
259  $expectedColumnMap = new ‪ColumnMap($columnName);
260  $expectedColumnMap->setType(TableColumnType::INLINE);
261  $expectedColumnMap->setTypeOfRelation(Relation::HAS_AND_BELONGS_TO_MANY);
262  $expectedColumnMap->setRelationTableName('tx_myextension_mm');
263  $expectedColumnMap->setChildTableName('tx_myextension_righttable');
264  $expectedColumnMap->setChildSortByFieldName('sorting');
265  $expectedColumnMap->setParentKeyFieldName('uid_local');
266  $expectedColumnMap->setChildKeyFieldName('uid_foreign');
267  yield 'setRelations detects many to many relation of type inline with intermediate table' => [
268  'columnName' => $columnName,
269  'columnConfiguration' => [
270  'config' => [
271  'type' => 'inline',
272  'foreign_table' => 'tx_myextension_righttable',
273  'MM' => 'tx_myextension_mm',
274  ],
275  ],
276  'propertyName' => $propertyName,
277  'expectedColumnMap' => $expectedColumnMap,
278  ];
279  }
280 
281  #[DataProvider('createWithInlineTypeDataProvider')]
282  #[Test]
283  public function ‪createWithInlineType(string $columnName, array $columnConfiguration, string $propertyName, ‪ColumnMap $expectedColumnMap): void
284  {
285  self::assertEquals(
286  $expectedColumnMap,
287  $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class)
288  );
289  }
290 
291  #[Test]
293  {
294  $columnName = 'has_one';
295  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
296  $columnConfiguration = [
297  'config' => [
298  'type' => 'select',
299  'foreign_table' => 'tx_myextension_bar',
300  'foreign_field' => 'parentid',
301  'foreign_match_fields' => [
302  'fieldname' => 'foo_model',
303  ],
304  ],
305  ];
306 
307  $columnMap = $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class);
308 
309  self::assertSame(
310  [
311  'fieldname' => 'foo_model',
312  ],
313  $columnMap->getRelationTableMatchFields()
314  );
315  }
316 
317  #[Test]
319  {
320  $columnName = 'has_many';
321  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
322  $columnConfiguration = [
323  'config' => [
324  'type' => 'select',
325  'foreign_table' => 'tx_myextension_bar',
326  'foreign_field' => 'parentid',
327  'foreign_match_fields' => [
328  'fieldname' => 'foo_model',
329  ],
330  ],
331  ];
332 
333  $columnMap = $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class);
334 
335  self::assertSame(
336  [
337  'fieldname' => 'foo_model',
338  ],
339  $columnMap->getRelationTableMatchFields()
340  );
341  }
342 
343  #[Test]
345  {
346  $columnName = 'has_and_belongs_to_many';
347  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
348  $expectedColumnMap = new ‪ColumnMap($columnName);
349  $expectedColumnMap->setType(TableColumnType::SELECT);
350  $expectedColumnMap->setTypeOfRelation(Relation::HAS_AND_BELONGS_TO_MANY);
351  $expectedColumnMap->setRelationTableName('tx_myextension_mm');
352  $expectedColumnMap->setChildTableName('tx_myextension_righttable');
353  $expectedColumnMap->setChildSortByFieldName('sorting');
354  $expectedColumnMap->setParentKeyFieldName('uid_local');
355  $expectedColumnMap->setChildKeyFieldName('uid_foreign');
356 
357  $columnConfiguration = [
358  'config' => [
359  'type' => 'select',
360  'foreign_table' => 'tx_myextension_righttable',
361  'foreign_table_where' => 'WHERE 1=1',
362  'MM' => 'tx_myextension_mm',
363  'MM_table_where' => 'WHERE 2=2',
364  ],
365  ];
366 
367  self::assertEquals($expectedColumnMap, $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class));
368  }
369 
370  #[Test]
372  {
373  $columnName = 'has_and_belongs_to_many';
374  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
375  $expectedColumnMap = new ‪ColumnMap($columnName);
376  $expectedColumnMap->setType(TableColumnType::SELECT);
377  $expectedColumnMap->setTypeOfRelation(Relation::HAS_AND_BELONGS_TO_MANY);
378  $expectedColumnMap->setRelationTableName('tx_myextension_mm');
379  $expectedColumnMap->setChildTableName('tx_myextension_lefttable');
380  $expectedColumnMap->setChildSortByFieldName('sorting_foreign');
381  $expectedColumnMap->setParentKeyFieldName('uid_foreign');
382  $expectedColumnMap->setChildKeyFieldName('uid_local');
383 
384  $columnConfiguration = [
385  'config' => [
386  'type' => 'select',
387  'foreign_table' => 'tx_myextension_lefttable',
388  'MM' => 'tx_myextension_mm',
389  'MM_opposite_field' => 'rights',
390  ],
391  ];
392 
393  self::assertEquals($expectedColumnMap, $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class));
394  }
395 
396  #[Test]
398  {
399  $columnName = 'has_and_belongs_to_many';
400  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
401  $expectedColumnMap = new ‪ColumnMap($columnName);
402  $expectedColumnMap->setType(TableColumnType::INLINE);
403  $expectedColumnMap->setTypeOfRelation(Relation::HAS_AND_BELONGS_TO_MANY);
404  $expectedColumnMap->setRelationTableName('tx_myextension_mm');
405  $expectedColumnMap->setChildTableName('tx_myextension_righttable');
406  $expectedColumnMap->setChildSortByFieldName('sorting');
407  $expectedColumnMap->setParentKeyFieldName('uid_local');
408  $expectedColumnMap->setChildKeyFieldName('uid_foreign');
409 
410  $columnConfiguration = [
411  'config' => [
412  'type' => 'inline',
413  'foreign_table' => 'tx_myextension_righttable',
414  'MM' => 'tx_myextension_mm',
415  'foreign_sortby' => 'sorting',
416  ],
417  ];
418 
419  self::assertEquals($expectedColumnMap, $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class));
420  }
421 
423  {
424  return [
425  'date field' => ['date', 'date'],
426  'datetime field' => ['datetime', 'datetime'],
427  'time field' => ['time', 'time'],
428  'no date/datetime/time field' => ['', null],
429  ];
430  }
431 
432  #[DataProvider('columnMapIsInitializedWithFieldEvaluationsForDateTimeFieldsDataProvider')]
433  #[Test]
434  public function ‪columnMapIsInitializedWithFieldEvaluationsForDateTimeFields(string $type, ?string $expectedValue): void
435  {
436  $columnName = 'virtual';
437  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
438  $columnConfiguration = [
439  'config' => [
440  'type' => 'datetime',
441  'dbType' => $type,
442  ],
443  ];
444 
445  $columnMap = $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class);
446 
447  self::assertSame($expectedValue, $columnMap->getDateTimeStorageFormat());
448  }
449 
450  public static function ‪tcaConfigurationsContainingTypeDataProvider(): array
451  {
452  return [
453  ['input', TableColumnType::INPUT],
454  ['text', TableColumnType::TEXT],
455  ['check', TableColumnType::CHECK],
456  ['radio', TableColumnType::RADIO],
457  ['select', TableColumnType::SELECT],
458  ['category', TableColumnType::CATEGORY],
459  ['group', TableColumnType::GROUP],
460  ['folder', TableColumnType::FOLDER],
461  ['none', TableColumnType::NONE],
462  ['language', TableColumnType::LANGUAGE],
463  ['passthrough', TableColumnType::PASSTHROUGH],
464  ['user', TableColumnType::USER],
465  ['flex', TableColumnType::FLEX],
466  ['inline', TableColumnType::INLINE],
467  ['slug', TableColumnType::SLUG],
468  ['email', TableColumnType::EMAIL],
469  ['link', TableColumnType::LINK],
470  ['password', TableColumnType::PASSWORD],
471  ['datetime', TableColumnType::DATETIME],
472  ['color', TableColumnType::COLOR],
473  ['number', TableColumnType::NUMBER],
474  ['file', TableColumnType::FILE],
475  ['json', TableColumnType::JSON],
476  ['uuid', ‪TableColumnType::UUID],
477  ];
478  }
479 
480  #[DataProvider('tcaConfigurationsContainingTypeDataProvider')]
481  #[Test]
482  public function ‪setTypeDetectsTypeProperly(string $type, ‪TableColumnType $expectedType): void
483  {
484  $columnName = 'virtual';
485  $propertyName = ‪GeneralUtility::underscoredToLowerCamelCase($columnName);
486  $columnConfiguration = [
487  'config' => [
488  'type' => $type,
489  ],
490  ];
491 
492  $columnMap = $this->columnMapFactory->create($columnName, $columnConfiguration, $propertyName, ColumnMapFactoryEntityFixture::class);
493 
494  self::assertSame($expectedType, $columnMap->getType());
495  }
496 }
‪TYPO3\CMS\Core\Utility\GeneralUtility\underscoredToLowerCamelCase
‪static string underscoredToLowerCamelCase($string)
Definition: GeneralUtility.php:671
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\$initializeDatabase
‪bool $initializeDatabase
Definition: ColumnMapFactoryTest.php:32
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\setTypeDetectsTypeProperly
‪setTypeDetectsTypeProperly(string $type, TableColumnType $expectedType)
Definition: ColumnMapFactoryTest.php:482
‪TYPO3\CMS\Core\DataHandling\UUID
‪@ UUID
Definition: TableColumnType.php:49
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\tcaConfigurationsContainingTypeDataProvider
‪static tcaConfigurationsContainingTypeDataProvider()
Definition: ColumnMapFactoryTest.php:450
‪TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMapFactory
Definition: ColumnMapFactory.php:33
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\columnMapIsInitializedWithFieldEvaluationsForDateTimeFieldsDataProvider
‪static columnMapIsInitializedWithFieldEvaluationsForDateTimeFieldsDataProvider()
Definition: ColumnMapFactoryTest.php:422
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\createWithInlineTypeDataProvider
‪static createWithInlineTypeDataProvider()
Definition: ColumnMapFactoryTest.php:255
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\columnMapIsInitializedWithFieldEvaluationsForDateTimeFields
‪columnMapIsInitializedWithFieldEvaluationsForDateTimeFields(string $type, ?string $expectedValue)
Definition: ColumnMapFactoryTest.php:434
‪TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap
Definition: ColumnMap.php:27
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\columnMapIsInitializedWithManyToManyRelationOfTypeSelect
‪columnMapIsInitializedWithManyToManyRelationOfTypeSelect()
Definition: ColumnMapFactoryTest.php:344
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper
Definition: ColumnMapFactoryTest.php:18
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\Fixtures\ColumnMapFactoryEntityFixture
Definition: ColumnMapFactoryEntityFixture.php:23
‪TYPO3\CMS\Core\DataHandling\TableColumnType
‪TableColumnType
Definition: TableColumnType.php:24
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\createWithSelectType
‪createWithSelectType(string $columnName, array $columnConfiguration, string $propertyName, ColumnMap $expectedColumnMap)
Definition: ColumnMapFactoryTest.php:218
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\createWithGroupType
‪createWithGroupType(string $columnName, array $columnConfiguration, string $propertyName, ColumnMap $expectedColumnMap)
Definition: ColumnMapFactoryTest.php:96
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\createWithSelectTypeDataProvider
‪static createWithSelectTypeDataProvider()
Definition: ColumnMapFactoryTest.php:104
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\createWithInlineType
‪createWithInlineType(string $columnName, array $columnConfiguration, string $propertyName, ColumnMap $expectedColumnMap)
Definition: ColumnMapFactoryTest.php:283
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest
Definition: ColumnMapFactoryTest.php:31
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\columnMapIsInitializedWithOppositeManyToManyRelationOfTypeSelect
‪columnMapIsInitializedWithOppositeManyToManyRelationOfTypeSelect()
Definition: ColumnMapFactoryTest.php:371
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\setUp
‪setUp()
Definition: ColumnMapFactoryTest.php:36
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\createWithFolderType
‪createWithFolderType(string $columnName, array $columnConfiguration, string $propertyName, ColumnMap $expectedColumnMap)
Definition: ColumnMapFactoryTest.php:247
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\settingOneToOneRelationSetsRelationTableMatchFields
‪settingOneToOneRelationSetsRelationTableMatchFields()
Definition: ColumnMapFactoryTest.php:292
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\columnMapIsInitializedWithManyToManyRelationOfTypeInlineAndIntermediateTable
‪columnMapIsInitializedWithManyToManyRelationOfTypeInlineAndIntermediateTable()
Definition: ColumnMapFactoryTest.php:397
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\$columnMapFactory
‪ColumnMapFactory $columnMapFactory
Definition: ColumnMapFactoryTest.php:34
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\settingOneToManyRelationSetsRelationTableMatchFields
‪settingOneToManyRelationSetsRelationTableMatchFields()
Definition: ColumnMapFactoryTest.php:318
‪TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap
Definition: Relation.php:18
‪TYPO3\CMS\Extbase\Persistence\Generic\Mapper\ColumnMap\Relation
‪Relation
Definition: Relation.php:24
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\createWithGroupTypeDataProvider
‪static createWithGroupTypeDataProvider()
Definition: ColumnMapFactoryTest.php:42
‪TYPO3\CMS\Extbase\Tests\Functional\Persistence\Generic\Mapper\ColumnMapFactoryTest\createWithFolderTypeDataProvider
‪static createWithFolderTypeDataProvider()
Definition: ColumnMapFactoryTest.php:226