‪TYPO3CMS  11.5
CleanerFieldProviderTest.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\MockObject\MockObject;
26 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
27 
31 class ‪CleanerFieldProviderTest extends UnitTestCase
32 {
36  protected ‪$subject;
37 
41  protected function ‪setUp(): void
42  {
43  parent::setUp();
44  $languageServiceMock = $this->getMockBuilder(LanguageService::class)
45  ->onlyMethods(['sL'])
46  ->disableOriginalConstructor()
47  ->getMock();
48  $languageServiceMock->method('sL')->willReturn('titleTest');
49  $this->subject = $this->getMockBuilder(CleanerFieldProvider::class)
50  ->onlyMethods(['getLanguageService', 'addMessage'])
51  ->getMock();
52  $this->subject->method('getLanguageService')->willReturn($languageServiceMock);
53  }
54 
59  protected function ‪getScheduleModuleControllerMock(array $mockedMethods = [])
60  {
61  $languageServiceMock = $this->getMockBuilder(LanguageService::class)
62  ->onlyMethods(['sL'])
63  ->disableOriginalConstructor()
64  ->getMock();
65  $languageServiceMock->method('sL')->willReturn('titleTest');
66 
67  $mockedMethods = array_merge(['getLanguageService'], $mockedMethods);
68  $scheduleModuleMock = $this->getMockBuilder(SchedulerModuleController::class)
69  ->onlyMethods($mockedMethods)
70  ->disableOriginalConstructor()
71  ->getMock();
72  $scheduleModuleMock->method('getLanguageService')->willReturn($languageServiceMock);
73 
74  return $scheduleModuleMock;
75  }
76 
81  {
82  return [
83  ['abc'],
84  [$this->getMockBuilder(CleanerTask::class)->disableOriginalConstructor()->getMock()],
85  [null],
86  [''],
87  [0],
88  ['1234abc'],
89  ];
90  }
91 
97  public function ‪validateAdditionalFieldsLogsPeriodError($period): void
98  {
99  $submittedData = [
100  'RecyclerCleanerPeriod' => $period,
101  'RecyclerCleanerTCA' => ['pages'],
102  ];
103 
104  $scheduleModuleControllerMock = $this->‪getScheduleModuleControllerMock();
105  $this->subject->expects(self::atLeastOnce())
106  ->method('addMessage')
107  ->with(self::equalTo('titleTest'), ‪FlashMessage::ERROR);
108 
109  $this->subject->validateAdditionalFields($submittedData, $scheduleModuleControllerMock);
110  }
111 
115  public function ‪validateAdditionalFieldsDataProvider(): array
116  {
117  return [
118  ['abc'],
119  [$this->getMockBuilder(CleanerTask::class)->disableOriginalConstructor()->getMock()],
120  [null],
121  [123],
122  ];
123  }
124 
130  public function ‪validateAdditionalFieldsLogsTableError($table): void
131  {
132  $submittedData = [
133  'RecyclerCleanerPeriod' => 14,
134  'RecyclerCleanerTCA' => $table,
135  ];
136 
137  $this->subject->validateAdditionalFields($submittedData, $this->‪getScheduleModuleControllerMock());
138  }
139 
143  public function ‪validateAdditionalFieldsIsTrueIfValid(): void
144  {
145  $submittedData = [
146  'RecyclerCleanerPeriod' => 14,
147  'RecyclerCleanerTCA' => ['pages'],
148  ];
149 
150  $scheduleModuleControllerMock = $this->‪getScheduleModuleControllerMock();
151  ‪$GLOBALS['TCA']['pages'] = ['foo' => 'bar'];
152  self::assertTrue($this->subject->validateAdditionalFields($submittedData, $scheduleModuleControllerMock));
153  }
154 
158  public function ‪saveAdditionalFieldsSavesFields(): void
159  {
160  $submittedData = [
161  'RecyclerCleanerPeriod' => 14,
162  'RecyclerCleanerTCA' => ['pages'],
163  ];
164 
165  $taskMock = $this->getMockBuilder(CleanerTask::class)
166  ->disableOriginalConstructor()
167  ->getMock();
168 
169  $taskMock->expects(self::once())
170  ->method('setTcaTables')
171  ->with(self::equalTo(['pages']));
172 
173  $taskMock->expects(self::once())
174  ->method('setPeriod')
175  ->with(self::equalTo(14));
176 
177  $this->subject->saveAdditionalFields($submittedData, $taskMock);
178  }
179 }
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest
Definition: CleanerFieldProviderTest.php:32
‪TYPO3\CMS\Recycler\Task\CleanerFieldProvider
Definition: CleanerFieldProvider.php:30
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest\saveAdditionalFieldsSavesFields
‪saveAdditionalFieldsSavesFields()
Definition: CleanerFieldProviderTest.php:157
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest\validateAdditionalFieldsIsTrueIfValid
‪validateAdditionalFieldsIsTrueIfValid()
Definition: CleanerFieldProviderTest.php:142
‪TYPO3\CMS\Recycler\Tests\Unit\Task
Definition: CleanerFieldProviderTest.php:18
‪TYPO3\CMS\Recycler\Task\CleanerTask
Definition: CleanerTask.php:30
‪TYPO3\CMS\Scheduler\Controller\SchedulerModuleController
Definition: SchedulerModuleController.php:58
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest\validateAdditionalFieldsLogsTableError
‪validateAdditionalFieldsLogsTableError($table)
Definition: CleanerFieldProviderTest.php:129
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest\$subject
‪CleanerFieldProvider $subject
Definition: CleanerFieldProviderTest.php:35
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest\getScheduleModuleControllerMock
‪MockObject SchedulerModuleController getScheduleModuleControllerMock(array $mockedMethods=[])
Definition: CleanerFieldProviderTest.php:58
‪TYPO3\CMS\Core\Messaging\FlashMessage
Definition: FlashMessage.php:26
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest\validateAdditionalFieldsLogsPeriodError
‪validateAdditionalFieldsLogsPeriodError($period)
Definition: CleanerFieldProviderTest.php:96
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest\setUp
‪setUp()
Definition: CleanerFieldProviderTest.php:40
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest\validateAdditionalFieldsLogsPeriodErrorDataProvider
‪array validateAdditionalFieldsLogsPeriodErrorDataProvider()
Definition: CleanerFieldProviderTest.php:79
‪TYPO3\CMS\Core\Localization\LanguageService
Definition: LanguageService.php:42
‪TYPO3\CMS\Core\Messaging\AbstractMessage\ERROR
‪const ERROR
Definition: AbstractMessage.php:31
‪TYPO3\CMS\Recycler\Tests\Unit\Task\CleanerFieldProviderTest\validateAdditionalFieldsDataProvider
‪array validateAdditionalFieldsDataProvider()
Definition: CleanerFieldProviderTest.php:114