Unit tests for the Object class
This commit is contained in:
parent
d4551d72a6
commit
506ff1fd45
3 changed files with 70 additions and 17 deletions
|
@ -136,13 +136,16 @@ class Config extends \ArrayObject
|
|||
}
|
||||
|
||||
// Assigns the environment
|
||||
$this['environment'] = $environment;
|
||||
$config['environment'] = $environment;
|
||||
|
||||
// Defaults expected Pickles variables to false
|
||||
$this['pickles'] = [
|
||||
'cache' => false,
|
||||
'profiler' => false,
|
||||
];
|
||||
foreach (['cache', 'profiler'] as $variable)
|
||||
{
|
||||
if (!isset($config['pickles'][$variable]))
|
||||
{
|
||||
$config['pickles'][$variable] = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Assigns the config variables to the object
|
||||
foreach ($config as $variable => $value)
|
||||
|
@ -201,7 +204,7 @@ class Config extends \ArrayObject
|
|||
*/
|
||||
public static function getInstance($file = false)
|
||||
{
|
||||
if (!self::$_instance)
|
||||
if (!self::$_instance || $file)
|
||||
{
|
||||
self::$_instance = new Config($file);
|
||||
}
|
||||
|
|
|
@ -61,16 +61,8 @@ class Object
|
|||
* Establishes a Config instance for all children to enjoy
|
||||
*/
|
||||
public function __construct($objects = null)
|
||||
{
|
||||
// Gets an instance of the config, unless we ARE the config
|
||||
if (get_class($this) == 'Pickles\\Config')
|
||||
{
|
||||
$this->config = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->config = Config::getInstance();
|
||||
}
|
||||
|
||||
if ($objects)
|
||||
{
|
||||
|
|
|
@ -2,23 +2,81 @@
|
|||
|
||||
class ObjectTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
public static function setUpBeforeClass()
|
||||
{
|
||||
$_SERVER['REQUEST_METHOD'] = 'GET';
|
||||
$_SERVER['SERVER_NAME'] = '127.0.0.1';
|
||||
|
||||
file_put_contents('/tmp/pickles.php', '<?php
|
||||
$config = [
|
||||
"environments" => [
|
||||
"local" => "127.0.0.1",
|
||||
"production" => "123.456.789.0",
|
||||
],
|
||||
"pickles" => [
|
||||
"datasource" => "mysql",
|
||||
],
|
||||
"datasources" => [
|
||||
"mysql" => [
|
||||
"driver" => "pdo_mysql",
|
||||
],
|
||||
],
|
||||
];
|
||||
');
|
||||
|
||||
$config = Pickles\Config::getInstance('/tmp/pickles.php');
|
||||
}
|
||||
|
||||
public static function tearDownAfterClass()
|
||||
{
|
||||
unlink('/tmp/pickles.php');
|
||||
}
|
||||
|
||||
public function testConstructorWithoutObjects()
|
||||
{
|
||||
$object = new Pickles\Object();
|
||||
|
||||
$this->assertInstanceOf('Pickles\Config', PHPUnit_Framework_Assert::readAttribute($object, 'config'));
|
||||
$this->assertInstanceOf('Pickles\\Config', PHPUnit_Framework_Assert::readAttribute($object, 'config'));
|
||||
}
|
||||
|
||||
public function testConstructorWithObjects()
|
||||
{
|
||||
$object = new Pickles\Object('cache');
|
||||
$this->assertInstanceOf('Pickles\\Cache', $object->cache);
|
||||
|
||||
$this->assertInstanceOf('Pickles\Cache', PHPUnit_Framework_Assert::readAttribute($object, 'cache'));
|
||||
$object = new Pickles\Object(['cache', 'db']);
|
||||
$this->assertInstanceOf('Pickles\\Cache', $object->cache);
|
||||
$this->assertInstanceOf('Pickles\\Database', $object->db);
|
||||
}
|
||||
|
||||
public function testGetInstanceWithoutClass()
|
||||
{
|
||||
$this->assertFalse(Pickles\Object::getInstance());
|
||||
}
|
||||
|
||||
public function testProfiler()
|
||||
{
|
||||
file_put_contents('/tmp/pickles.php', '<?php
|
||||
$config = [
|
||||
"environments" => [
|
||||
"local" => "127.0.0.1",
|
||||
"production" => "123.456.789.0",
|
||||
],
|
||||
"pickles" => [
|
||||
"datasource" => "mysql",
|
||||
"profiler" => true,
|
||||
"foo" => "bar",
|
||||
],
|
||||
"datasources" => [
|
||||
"mysql" => [
|
||||
"driver" => "pdo_mysql",
|
||||
],
|
||||
],
|
||||
];
|
||||
');
|
||||
|
||||
$config = Pickles\Config::getInstance('/tmp/pickles.php');
|
||||
$object = new Pickles\Object();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue