/
home
/
obinna
/
html
/
restaurants
/
vendor
/
jdorn
/
sql-formatter
/
tests
/
Upload File
HOME
<?php require __DIR__.'/../lib/SqlFormatter.php'; // Force SqlFormatter to run in non-CLI mode for tests SqlFormatter::$cli = false; class SqlFormatterTest extends PHPUnit_Framework_TestCase { protected $sqlData; /** * @dataProvider formatHighlightData */ function testFormatHighlight($sql, $html) { $this->assertEquals(trim($html), trim(SqlFormatter::format($sql))); } /** * @dataProvider formatData */ function testFormat($sql, $html) { $this->assertEquals(trim($html), trim(SqlFormatter::format($sql, false))); } /** * @dataProvider highlightData */ function testHighlight($sql, $html) { $this->assertEquals(trim($html), trim(SqlFormatter::highlight($sql))); } /** * @dataProvider highlightCliData */ function testCliHighlight($sql, $html) { SqlFormatter::$cli = true; $this->assertEquals(trim($html), trim(SqlFormatter::format($sql))); SqlFormatter::$cli = false; } /** * @dataProvider compressData */ function testCompress($sql, $html) { $this->assertEquals(trim($html), trim(SqlFormatter::compress($sql))); } function testUsePre() { SqlFormatter::$use_pre = false; $actual = SqlFormatter::highlight("test"); $expected = '<span style="color: #333;">test</span>'; $this->assertEquals($actual,$expected); SqlFormatter::$use_pre = true; $actual = SqlFormatter::highlight("test"); $expected = '<pre style="color: black; background-color: white;"><span style="color: #333;">test</span></pre>'; $this->assertEquals($actual,$expected); } function testSplitQuery() { $expected = array( "SELECT 'test' FROM MyTable;", "SELECT Column2 FROM SomeOther Table WHERE (test = true);" ); $actual = SqlFormatter::splitQuery(implode(';',$expected)); $this->assertEquals($expected, $actual); } function testSplitQueryEmpty() { $sql = "SELECT 1;SELECT 2;\n-- This is a comment\n;SELECT 3"; $expected = array("SELECT 1;","SELECT 2;","SELECT 3"); $actual = SqlFormatter::splitQuery($sql); $this->assertEquals($expected, $actual); } function testRemoveComments() { $expected = SqlFormatter::format("SELECT\n * FROM\n MyTable",false); $sql = "/* this is a comment */SELECT#This is another comment\n * FROM-- One final comment\n MyTable"; $actual = SqlFormatter::removeComments($sql); $this->assertEquals($expected, $actual); } function testCacheStats() { $stats = SqlFormatter::getCacheStats(); $this->assertGreaterThan(1,$stats['hits']); } function formatHighlightData() { $formatHighlightData = explode("\n\n",file_get_contents(__DIR__."/format-highlight.html")); $sqlData = $this->sqlData(); $return = array(); foreach($formatHighlightData as $i=>$data) { $return[] = array( $sqlData[$i], $data ); } return $return; } function highlightCliData() { $clidata = explode("\n\n",file_get_contents(__DIR__."/clihighlight.html")); $sqlData = $this->sqlData(); $return = array(); foreach($clidata as $i=>$data) { $return[] = array( $sqlData[$i], $data ); } return $return; } function formatData() { $formatData = explode("\n\n",file_get_contents(__DIR__."/format.html")); $sqlData = $this->sqlData(); $return = array(); foreach($formatData as $i=>$data) { $return[] = array( $sqlData[$i], $data ); } return $return; } function compressData() { $compressData = explode("\n\n",file_get_contents(__DIR__."/compress.html")); $sqlData = $this->sqlData(); $return = array(); foreach($compressData as $i=>$data) { $return[] = array( $sqlData[$i], $data ); } return $return; } function highlightData() { $highlightData = explode("\n\n",file_get_contents(__DIR__."/highlight.html")); $sqlData = $this->sqlData(); $return = array(); foreach($highlightData as $i=>$data) { $return[] = array( $sqlData[$i], $data ); } return $return; } function sqlData() { if(!$this->sqlData) { $this->sqlData = explode("\n\n",file_get_contents(__DIR__."/sql.sql")); } /** $formatHighlight = array(); $highlight = array(); $format = array(); $compress = array(); $clihighlight = array(); foreach($this->sqlData as $sql) { $formatHighlight[] = trim(SqlFormatter::format($sql)); $highlight[] = trim(SqlFormatter::highlight($sql)); $format[] = trim(SqlFormatter::format($sql, false)); $compress[] = trim(SqlFormatter::compress($sql)); SqlFormatter::$cli = true; $clihighlight[] = trim(SqlFormatter::format($sql)); SqlFormatter::$cli = false; } file_put_contents(__DIR__."/format-highlight.html", implode("\n\n",$formatHighlight)); file_put_contents(__DIR__."/highlight.html", implode("\n\n",$highlight)); file_put_contents(__DIR__."/format.html", implode("\n\n",$format)); file_put_contents(__DIR__."/compress.html", implode("\n\n",$compress)); file_put_contents(__DIR__."/clihighlight.html", implode("\n\n",$clihighlight)); /**/ return $this->sqlData; } }