<?php 
namespace eMapper\MySQL; 
 
use Acme\Type\RGBColorTypeHandler; 
use eMapper\SQL\Statement; 
use eMapper\Engine\MySQL\MySQLDriver; 
use eMapper\Mapper; 
 
/** 
 * Generic mysql test class 
 *  
 * @author emaphp 
 * @group mysql 
 */ 
abstract class MySQLTest extends \PHPUnit_Framework_TestCase { 
    /** 
     * MySQL configuration 
     * @var array 
     */ 
    public static $config = array('host' => 'localhost', 'user' => 'root', 'password' => 'c4lpurn14', 'database' => 'emapper_testing'); 
     
    /** 
     * Environment configuration 
     * @var array 
     */ 
    public static $env_config = ['environment.id' => 'default', 'environment.class' => 'eMapper\Dynamic\Environment\DynamicSQLEnvironment']; 
     
    /** 
     * MySQL default connection 
     * @var \mysqli 
     */ 
    public static $conn; 
     
    /** 
     * MySQL driver 
     * @var MySQLDriver 
     */ 
    public static $driver; 
     
    /** 
     * MySQLMapper instance 
     * @var MySQLMapper 
     */ 
    public static $mapper; 
     
    public static $blob; 
     
    /* (non-PHPdoc) 
     * @see PHPUnit_Framework_TestCase::setUpBeforeClass() 
     */ 
    public static function setUpBeforeClass() { 
        self::$conn = new \mysqli(self::$config['host'], self::$config['user'], self::$config['password'], self::$config['database']); 
        self::$driver = new MySQLDriver(self::$config['database'], self::$config['host'], self::$config['user'], self::$config['password']); 
        self::$mapper = new Mapper(self::$driver); 
         
        //add 'color' type 
        self::$mapper->addType('Acme\RGBColor', new RGBColorTypeHandler(), 'color'); 
         
        //add some statements 
        self::$mapper->addStatement(new Statement('getProduct', "SELECT * FROM products WHERE product_id = #{productId}"));         
        self::$mapper->addStatement(new Statement('getUser', "SELECT * FROM users WHERE user_id = %{int}", Statement::type('array'))); 
         
        //store avatar image 
        self::$blob = file_get_contents(__DIR__ . '/../avatar.gif'); 
    } 
     
    public static function tearDownAfterClass() { 
        self::$conn->close(); 
        self::$mapper->close(); 
    } 
} 
?>
 
 |