2 namespace TYPO3\CMS\Dbal\Tests\Unit\Database;
34 $configuration = array(
35 'handlerCfg' => array(
44 'tx_templavoila_tmplobj' => array(
45 'mapFieldNames' => array(
46 'datastructure' =>
'ds',
50 'mapFieldNames' => array(
58 $this->subject = $this->prepareSubject(
'mssql', $configuration);
66 $this->assertTrue($this->subject->runningADOdbDriver(
'mssql'));
75 $expected =
'SELECT * FROM "fe_users" WHERE \',\'+"usergroup"+\',\' LIKE \'%,10,%\'';
76 $result = $this->subject->SELECTquery(
'*',
'fe_users',
'FIND_IN_SET(10, usergroup)');
77 $this->assertEquals($expected, $this->
cleanSql($result));
86 $parseString =
'SELECT * FROM pages WHERE title=\'1\'\'\' AND deleted=0';
87 $components = $this->subject->SQLparser->_callRef(
'parseSELECT', $parseString);
89 $this->assertTrue(is_array($components), $components);
90 $this->assertEmpty($components[
'parseString']);
103 $selectFields =
'uid, FirstName, LastName';
104 $fromTables =
'Members';
105 $whereClause =
'pid=0 AND cruser_id=1';
109 $remappedParameters = $this->subject->_call(
'map_remapSELECTQueryParts', $selectFields, $fromTables, $whereClause, $groupBy, $orderBy);
110 $result = $this->subject->_call(
'SELECTqueryFromArray', $remappedParameters);
111 $expected =
'SELECT "MemberID", "FirstName", "LastName" FROM "Members" WHERE 0 = 0 AND 1 = 1';
112 $this->assertEquals($expected, $this->
cleanSql($result));
124 $result = $this->subject->SELECTquery(
'*, CASE WHEN' .
' LOCATE(' . $this->subject->fullQuoteStr(
'(fce)',
'tx_templavoila_tmplobj') .
', datastructure)>0 THEN 2' .
' ELSE 1' .
' END AS scope',
'tx_templavoila_tmplobj',
'1=1');
125 $expected =
'SELECT *, CASE WHEN CHARINDEX(\'(fce)\', "datastructure") > 0 THEN 2 ELSE 1 END AS "scope" FROM "tx_templavoila_tmplobj" WHERE 1 = 1';
126 $this->assertEquals($expected, $this->
cleanSql($result));
135 $result = $this->subject->SELECTquery(
'*, CASE WHEN' .
' LOCATE(' . $this->subject->fullQuoteStr(
'(fce)',
'tx_templavoila_tmplobj') .
', datastructure, 4)>0 THEN 2' .
' ELSE 1' .
' END AS scope',
'tx_templavoila_tmplobj',
'1=1');
136 $expected =
'SELECT *, CASE WHEN CHARINDEX(\'(fce)\', "datastructure", 4) > 0 THEN 2 ELSE 1 END AS "scope" FROM "tx_templavoila_tmplobj" WHERE 1 = 1';
137 $this->assertEquals($expected, $this->
cleanSql($result));
146 $selectFields =
'*, CASE WHEN' .
' LOCATE(' . $this->subject->fullQuoteStr(
'(fce)',
'tx_templavoila_tmplobj') .
', datastructure, 4)>0 THEN 2' .
' ELSE 1' .
' END AS scope';
147 $fromTables =
'tx_templavoila_tmplobj';
148 $whereClause =
'1=1';
151 $remappedParameters = $this->subject->_call(
'map_remapSELECTQueryParts', $selectFields, $fromTables, $whereClause, $groupBy, $orderBy);
153 $result = $this->subject->_call(
'SELECTqueryFromArray', $remappedParameters);
154 $expected =
'SELECT *, CASE WHEN CHARINDEX(\'(fce)\', "ds", 4) > 0 THEN 2 ELSE 1 END AS "scope" FROM "tx_templavoila_tmplobj" WHERE 1 = 1';
155 $this->assertEquals($expected, $this->
cleanSql($result));
164 $selectFields =
'*, CASE WHEN' .
' LOCATE(' . $this->subject->fullQuoteStr(
'(fce)',
'tx_templavoila_tmplobj') .
', tx_templavoila_tmplobj.datastructure, 4)>0 THEN 2' .
' ELSE 1' .
' END AS scope';
165 $fromTables =
'tx_templavoila_tmplobj';
166 $whereClause =
'1=1';
169 $remappedParameters = $this->subject->_call(
'map_remapSELECTQueryParts', $selectFields, $fromTables, $whereClause, $groupBy, $orderBy);
171 $result = $this->subject->_call(
'SELECTqueryFromArray', $remappedParameters);
172 $expected =
'SELECT *, CASE WHEN CHARINDEX(\'(fce)\', "tx_templavoila_tmplobj"."ds", 4) > 0 THEN 2 ELSE 1 END AS "scope" FROM "tx_templavoila_tmplobj" WHERE 1 = 1';
173 $this->assertEquals($expected, $this->
cleanSql($result));
182 $result = $this->subject->SELECTquery(
'*',
'tt_news_cat_mm',
'IFNULL(tt_news_cat_mm.uid_foreign,0) IN (21,22)');
183 $expected =
'SELECT * FROM "tt_news_cat_mm" WHERE ISNULL("tt_news_cat_mm"."uid_foreign", 0) IN (21,22)';
184 $this->assertEquals($expected, $this->
cleanSql($result));
193 $result = $this->subject->SELECTquery(
195 'index_section ISEC, index_fulltext IFT',
196 'IFT.fulltextdata LIKE \'%' . $this->subject->quoteStr(
"Don't worry",
'index_fulltext')
197 .
'%\' AND ISEC.phash = IFT.phash',
200 $expected =
'SELECT "ISEC"."phash" FROM "index_section" "ISEC", "index_fulltext" "IFT" WHERE "IFT"."fulltextdata" LIKE \'%Don\'\'t worry%\' AND "ISEC"."phash" = "IFT"."phash" GROUP BY "ISEC"."phash"';
201 $this->assertEquals($expected, $this->
cleanSql($result));