‪TYPO3CMS  ‪main
DatabaseRowDefaultValuesTest.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\Test;
22 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
23 
24 final class ‪DatabaseRowDefaultValuesTest extends UnitTestCase
25 {
27 
28  protected function ‪setUp(): void
29  {
30  parent::setUp();
31  $this->subject = new ‪DatabaseRowDefaultValues();
32  }
33 
34  #[Test]
35  public function ‪addDataKeepsExistingValue(): void
36  {
37  $input = [
38  'databaseRow' => [
39  'aDefinedField' => 'aValue',
40  ],
41  'processedTca' => [
42  'columns' => [
43  'aDefinedField' => [],
44  ],
45  ],
46  ];
47  $expected = $input;
48  self::assertSame($expected, $this->subject->addData($input));
49  }
50 
51  #[Test]
53  {
54  $input = [
55  'databaseRow' => [
56  'aField' => null,
57  ],
58  'processedTca' => [
59  'columns' => [
60  'aField' => [
61  'config' => [
62  'nullable' => true,
63  ],
64  ],
65  ],
66  ],
67  ];
68  $expected = $input;
69  self::assertSame($expected, $this->subject->addData($input));
70  }
71 
72  #[Test]
74  {
75  $input = [
76  'databaseRow' => [],
77  'processedTca' => [
78  'columns' => [
79  'aField' => [
80  'config' => [
81  'nullable' => true,
82  'default' => null,
83  ],
84  ],
85  ],
86  ],
87  ];
88  $expected = $input;
89  $expected['databaseRow']['aField'] = null;
90  self::assertSame($expected, $this->subject->addData($input));
91  }
92 
93  #[Test]
95  {
96  $input = [
97  'databaseRow' => [],
98  'processedTca' => [
99  'columns' => [
100  'aField' => [
101  'config' => [
102  'nullable' => true,
103  'default' => 'foo',
104  ],
105  ],
106  ],
107  ],
108  ];
109  $expected = $input;
110  $expected['databaseRow']['aField'] = 'foo';
111  self::assertSame($expected, $this->subject->addData($input));
112  }
113 
114  #[Test]
115  public function ‪addDataSetsDefaultValueIsSet(): void
116  {
117  $input = [
118  'databaseRow' => [],
119  'processedTca' => [
120  'columns' => [
121  'aField' => [
122  'config' => [
123  'default' => 'foo',
124  ],
125  ],
126  ],
127  ],
128  ];
129  $expected = $input;
130  $expected['databaseRow']['aField'] = 'foo';
131  self::assertSame($expected, $this->subject->addData($input));
132  }
133 }
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseRowDefaultValuesTest
Definition: DatabaseRowDefaultValuesTest.php:25
‪TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseRowDefaultValues
Definition: DatabaseRowDefaultValues.php:27
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseRowDefaultValuesTest\addDataSetsDefaultValueIfEvalNullIsSet
‪addDataSetsDefaultValueIfEvalNullIsSet()
Definition: DatabaseRowDefaultValuesTest.php:94
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseRowDefaultValuesTest\addDataKeepsExistingNullValueWithEvalNull
‪addDataKeepsExistingNullValueWithEvalNull()
Definition: DatabaseRowDefaultValuesTest.php:52
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseRowDefaultValuesTest\addDataKeepsExistingValue
‪addDataKeepsExistingValue()
Definition: DatabaseRowDefaultValuesTest.php:35
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseRowDefaultValuesTest\setUp
‪setUp()
Definition: DatabaseRowDefaultValuesTest.php:28
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseRowDefaultValuesTest\$subject
‪DatabaseRowDefaultValues $subject
Definition: DatabaseRowDefaultValuesTest.php:26
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseRowDefaultValuesTest\addDataSetsDefaultValueIsSet
‪addDataSetsDefaultValueIsSet()
Definition: DatabaseRowDefaultValuesTest.php:115
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider\DatabaseRowDefaultValuesTest\addDataSetsNullValueWithDefaultNullForNewRecord
‪addDataSetsNullValueWithDefaultNullForNewRecord()
Definition: DatabaseRowDefaultValuesTest.php:73
‪TYPO3\CMS\Backend\Tests\Unit\Form\FormDataProvider
Definition: DatabaseDefaultLanguagePageRowTest.php:18