Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/jdorn/sql-formatter/tests/SqlFormatterTest.php
<?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;
    }
   
}