/** * Mock some of the internals of DB connection * used for proper DateTime format. Assuming MySQL, but * any can be used, as long as its DateTIme format is consistent */ protected function _mockConnection() { Illuminate\Database\Eloquent\Model::setConnectionResolver($resolver = m::mock('Illuminate\\Database\\ConnectionResolverInterface')); $resolver->shouldReceive('connection')->andReturn($mockConnection = m::mock('Illuminate\\Database\\ConnectionInterface')); $mockConnection->shouldreceive('getPostProcessor')->andReturn(m::mock('Illuminate\\Database\\Query\\Processors\\Processor')); $mockConnection->shouldReceive('getQueryGrammar')->andReturn($queryGrammar = m::mock('Illuminate\\Database\\Query\\Grammars\\Grammar')); $queryGrammar->shouldReceive('getDateFormat')->andReturn('Y-m-d H:i:s'); }
<?php if (!defined('BASEPATH')) { exit('No direct script access allowed'); } $CI =& get_instance(); $config = $CI->db; // Get the DB object // https://gist.github.com/4417395 $resolver = new Illuminate\Database\ConnectionResolver(); $resolver->setDefaultConnection('default'); $factory = new Illuminate\Database\Connectors\ConnectionFactory(); $connection = $factory->make(array('host' => $config->hostname, 'database' => $config->database, 'username' => $config->username, 'password' => $config->password, 'collation' => $config->dbcollat, 'driver' => 'mysql', 'prefix' => $config->dbprefix)); $resolver->addConnection('default', $connection); Illuminate\Database\Eloquent\Model::setConnectionResolver($resolver);
/** * Build a fixture instance. * * @return void */ protected function buildFixture() { if ($this->fixture) { return; } $this->db = $this->buildDB(); $str = new Str(); $this->fixture = Fixture::getInstance(); $repository = new Eloquent($this->db, $str); $this->fixture->setDriver($repository); // Bootstrap Eloquent $sqliteConnection = new Illuminate\Database\SQLiteConnection($this->db); $resolver = new Illuminate\Database\ConnectionResolver(array('sqlite' => $sqliteConnection)); $resolver->setDefaultConnection('sqlite'); Illuminate\Database\Eloquent\Model::setConnectionResolver($resolver); }