[TASK] Use name-resolution instead of strings where possible: 17
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Tests / Unit / Database / SqlParserTest.php
index 6221e17..611a787 100644 (file)
@@ -1,55 +1,38 @@
 <?php
 namespace TYPO3\CMS\Core\Tests\Unit\Database;
 
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 2011 Patrick Schriner <patrick.schriner@diemedialen.de>
- *  All rights reserved
- *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
+/**
+ * This file is part of the TYPO3 CMS project.
  *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
+ * It is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License, either version 2
+ * of the License, or any later version.
  *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * For the full copyright and license information, please read the
+ * LICENSE.txt file that was distributed with this source code.
  *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
+ * The TYPO3 project - inspiring people to share!
+ */
 /**
  * Testcase for TYPO3\CMS\Core\Database\SqlParser
  *
  * @author Patrick Schriner <patrick.schriner@diemedialen.de>
- * @package TYPO3
- * @subpackage t3lib
  */
 class SqlParserTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
 
        /**
-        * @var \TYPO3\CMS\Core\Database\SqlParser
+        * @var \TYPO3\CMS\Core\Database\SqlParser|\TYPO3\CMS\Core\Tests\AccessibleObjectInterface
         */
-       private $fixture;
+       protected $fixture;
 
        public function setUp() {
-               $this->fixture = new \TYPO3\CMS\Core\Database\SqlParser();
-       }
-
-       public function tearDown() {
-               unset($this->fixture);
+               $this->fixture = $this->getAccessibleMock(\TYPO3\CMS\Core\Database\SqlParser::class, array('dummy'));
        }
 
        /**
         * Regression test
         *
         * @test
-        * @todo Define visibility
         */
        public function compileWhereClauseDoesNotDropClauses() {
                $clauses = array(
@@ -124,6 +107,35 @@ class SqlParserTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                $this->assertContains('IFNULL', $output);
        }
 
-}
+       /**
+        * Data provider for trimSqlReallyTrimsAllWhitespace
+        *
+        * @see trimSqlReallyTrimsAllWhitespace
+        */
+       public function trimSqlReallyTrimsAllWhitespaceDataProvider() {
+               return array(
+                       'Nothing to trim' => array('SELECT * FROM test WHERE 1=1;', 'SELECT * FROM test WHERE 1=1 '),
+                       'Space after ;' => array('SELECT * FROM test WHERE 1=1; ', 'SELECT * FROM test WHERE 1=1 '),
+                       'Space before ;' => array('SELECT * FROM test WHERE 1=1 ;', 'SELECT * FROM test WHERE 1=1 '),
+                       'Space before and after ;' => array('SELECT * FROM test WHERE 1=1 ; ', 'SELECT * FROM test WHERE 1=1 '),
+                       'Linefeed after ;' => array('SELECT * FROM test WHERE 1=1' . LF . ';', 'SELECT * FROM test WHERE 1=1 '),
+                       'Linefeed before ;' => array('SELECT * FROM test WHERE 1=1;' . LF, 'SELECT * FROM test WHERE 1=1 '),
+                       'Linefeed before and after ;' => array('SELECT * FROM test WHERE 1=1' . LF . ';' . LF, 'SELECT * FROM test WHERE 1=1 '),
+                       'Tab after ;' => array('SELECT * FROM test WHERE 1=1' . TAB . ';', 'SELECT * FROM test WHERE 1=1 '),
+                       'Tab before ;' => array('SELECT * FROM test WHERE 1=1;' . TAB, 'SELECT * FROM test WHERE 1=1 '),
+                       'Tab before and after ;' => array('SELECT * FROM test WHERE 1=1' . TAB . ';' . TAB, 'SELECT * FROM test WHERE 1=1 '),
+               );
+       }
 
-?>
\ No newline at end of file
+       /**
+        * @test
+        * @dataProvider trimSqlReallyTrimsAllWhitespaceDataProvider
+        * @param string $sql The SQL to trim
+        * @param string $expected The expected trimmed SQL with single space at the end
+        */
+       public function trimSqlReallyTrimsAllWhitespace($sql, $expected) {
+               $result = $this->fixture->_call('trimSQL', $sql);
+               $this->assertSame($expected, $result);
+       }
+
+}