Exemplo n.º 1
0
    /**
     * Test for PMA_Tracker::createDatabaseVersion()
     *
     * @return void
     * @test
     */
    public function testCreateDatabaseVersion()
    {
        if (!setupForTestsUsingDate()) {
            $this->markTestSkipped("Cannot override internal function date()");
        }

        $GLOBALS['cfg']['Server']['tracking_add_drop_table'] = true;
        $GLOBALS['cfg']['Server']['tracking_add_drop_view'] = true;
        $GLOBALS['cfg']['Server']['user'] = "******";

        $reflection = new \ReflectionClass('PMA_Tracker');
        $method = $reflection->getMethod('init');
        $method->setAccessible(true);
        $method->invoke(null, array());

        $dbi = $this->getMockBuilder('PMA_DatabaseInterface')
            ->disableOriginalConstructor()
            ->getMock();

        $date = date('Y-m-d H:i:s');

        $expectedMainQuery = "/*NOTRACK*/" .
        "\nINSERT INTO. (db_name, table_name, version, date_created, date_updated," .
        " schema_snapshot, schema_sql, data_sql, tracking ) values (
        'pma_test',
        '',
        '1',
        '". $date ."',
        '". $date ."',
        '',
        '# log ". $date ." pma_test_user" .
        "\nSHOW DATABASES',
        '" .
        "\n',
        'CREATE DATABASE,ALTER DATABASE,DROP DATABASE' )";

        $GLOBALS['controllink'] = null;

        $dbi->expects($this->exactly(1))
            ->method('query')
            ->with($expectedMainQuery, null, 0, false)
            ->will($this->returnValue("executed"));

        $GLOBALS['dbi'] = $dbi;
        $this->assertEquals(
            'executed',
            PMA_Tracker::createDatabaseVersion('pma_test', '1', 'SHOW DATABASES')
        );

        tearDownForTestsUsingDate();
    }