Changeset View
Changeset View
Standalone View
Standalone View
src/infrastructure/storage/__tests__/QueryFormattingTestCase.php
<?php | <?php | ||||
final class QueryFormattingTestCase extends PhabricatorTestCase { | final class QueryFormattingTestCase extends PhabricatorTestCase { | ||||
public function testQueryFormatting() { | public function testQueryFormatting() { | ||||
$conn = id(new PhabricatorUser())->establishConnection('r'); | $conn = id(new PhabricatorUser())->establishConnection('r'); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
'NULL', | 'NULL', | ||||
qsprintf($conn, '%nd', null)); | (string)qsprintf($conn, '%nd', null)); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
'0', | '0', | ||||
qsprintf($conn, '%nd', 0)); | (string)qsprintf($conn, '%nd', 0)); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
'0', | '0', | ||||
qsprintf($conn, '%d', 0)); | (string)qsprintf($conn, '%d', 0)); | ||||
$raised = null; | $raised = null; | ||||
try { | try { | ||||
qsprintf($conn, '%d', 'derp'); | qsprintf($conn, '%d', 'derp'); | ||||
} catch (Exception $ex) { | } catch (Exception $ex) { | ||||
$raised = $ex; | $raised = $ex; | ||||
} | } | ||||
$this->assertTrue( | $this->assertTrue( | ||||
(bool)$raised, | (bool)$raised, | ||||
pht('%s should raise exception for invalid %%d conversion.', 'qsprintf')); | pht('%s should raise exception for invalid %%d conversion.', 'qsprintf')); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
"'<S>'", | "'<S>'", | ||||
qsprintf($conn, '%s', null)); | (string)qsprintf($conn, '%s', null)); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
'NULL', | 'NULL', | ||||
qsprintf($conn, '%ns', null)); | (string)qsprintf($conn, '%ns', null)); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
"'<S>', '<S>'", | "'<S>', '<S>'", | ||||
qsprintf($conn, '%Ls', array('x', 'y'))); | (string)qsprintf($conn, '%Ls', array('x', 'y'))); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
"'<B>'", | "'<B>'", | ||||
qsprintf($conn, '%B', null)); | (string)qsprintf($conn, '%B', null)); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
'NULL', | 'NULL', | ||||
qsprintf($conn, '%nB', null)); | (string)qsprintf($conn, '%nB', null)); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
"'<B>', '<B>'", | "'<B>', '<B>'", | ||||
qsprintf($conn, '%LB', array('x', 'y'))); | (string)qsprintf($conn, '%LB', array('x', 'y'))); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
'<C>', | '<C>', | ||||
qsprintf($conn, '%T', 'x')); | (string)qsprintf($conn, '%T', 'x')); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
'<C>', | '<C>', | ||||
qsprintf($conn, '%C', 'y')); | (string)qsprintf($conn, '%C', 'y')); | ||||
$this->assertEqual( | $this->assertEqual( | ||||
'<C>.<C>', | '<C>.<C>', | ||||
qsprintf($conn, '%R', new AphrontDatabaseTableRef('x', 'y'))); | (string)qsprintf($conn, '%R', new AphrontDatabaseTableRef('x', 'y'))); | ||||
} | } | ||||
} | } |