ba5e8cde77c8e7740d6c40801c2c6421657358be
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Tests / Unit / Mvc / Cli / RequestTest.php
1 <?php
2 namespace TYPO3\CMS\Extbase\Tests\Unit\Mvc\Cli;
3
4 /* *
5 * This script belongs to the Extbase framework. *
6 * *
7 * It is free software; you can redistribute it and/or modify it under *
8 * the terms of the GNU Lesser General Public License as published by the *
9 * Free Software Foundation, either version 3 of the License, or (at your *
10 * option) any later version. *
11 * *
12 * This script is distributed in the hope that it will be useful, but *
13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- *
14 * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser *
15 * General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU Lesser General Public *
18 * License along with the script. *
19 * If not, see http://www.gnu.org/licenses/lgpl.html *
20 * *
21 * The TYPO3 project - inspiring people to share! *
22 * */
23
24 /**
25 * Test case
26 */
27 class RequestTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
28
29 /**
30 * @var \TYPO3\CMS\Extbase\Mvc\Cli\Request|\PHPUnit_Framework_MockObject_MockObject|\TYPO3\CMS\Core\Tests\AccessibleObjectInterface
31 */
32 protected $request;
33
34 /**
35 * @var \TYPO3\CMS\Extbase\Object\ObjectManagerInterface
36 */
37 protected $mockObjectManager;
38
39 /**
40 * Sets up this test case
41 */
42 public function setUp() {
43 $this->request = $this->getAccessibleMock('TYPO3\CMS\Extbase\Mvc\Cli\Request', array('dummy'));
44 $this->mockObjectManager = $this->getMock('TYPO3\\CMS\\Extbase\\Object\\ObjectManagerInterface');
45 $this->request->_set('objectManager', $this->mockObjectManager);
46 }
47
48 /**
49 * @test
50 * @author Robert Lemke <robert@typo3.org>
51 */
52 public function getCommandReturnsTheCommandObjectReflectingTheRequestInformation() {
53 $this->request->setControllerObjectName('Tx_Extbase_Command_CacheCommandController');
54 $this->request->setControllerCommandName('flush');
55 $this->mockObjectManager->expects($this->once())->method('get')->with('TYPO3\\CMS\\Extbase\\Mvc\\Cli\\Command', 'Tx_Extbase_Command_CacheCommandController', 'flush');
56 $this->request->getCommand();
57 }
58
59 /**
60 * @test
61 * @author Robert Lemke <robert@typo3.org>
62 */
63 public function setControllerObjectNameAndSetControllerCommandNameUnsetTheBuiltCommandObject() {
64 $this->request->setControllerObjectName('Tx_Extbase_Command_CacheCommandController');
65 $this->request->setControllerCommandName('flush');
66 $this->request->getCommand();
67 $this->request->setControllerObjectName('Tx_SomeExtension_Command_BeerCommandController');
68 $this->request->setControllerCommandName('drink');
69 $this->mockObjectManager->expects($this->once())->method('get')->with('TYPO3\\CMS\\Extbase\\Mvc\\Cli\\Command', 'Tx_SomeExtension_Command_BeerCommandController', 'drink');
70 $this->request->getCommand();
71 }
72
73 /**
74 * @test
75 */
76 public function setControllerObjectNameProperlyResolvesExtensionNameWithNamespaces() {
77 $mockCliRequest = new \TYPO3\CMS\Extbase\Mvc\Cli\Request;
78 $mockCliRequest->setControllerObjectName('TYPO3\CMS\Extbase\Command\NamespacedMockCommandController');
79
80 $this->assertSame('Extbase', $mockCliRequest->getControllerExtensionName());
81 }
82
83 /**
84 * @test
85 */
86 public function setControllerObjectNameProperlyResolvesExtensionNameWithoutNamespaces() {
87 $mockCliRequest = new \TYPO3\CMS\Extbase\Mvc\Cli\Request;
88 $mockCliRequest->setControllerObjectName('Tx_Extbase_Command_OldschoolMockCommandController');
89
90 $this->assertSame('Extbase', $mockCliRequest->getControllerExtensionName());
91 }
92 }