miniMVC/tests/miniMVCTest.php
2012-01-17 08:10:30 -05:00

144 lines
2.5 KiB
PHP

<?php
require_once('simpletest/autorun.php');
require_once('../src/sys/common.php');
/**
* Test class for /src/sys/common.php
*/
class commonTest extends UnitTestCase {
function __construct()
{
parent::__construct('Common.php Tests');
}
function setUp()
{
$this->empty = array();
$this->object = new JSObject();
$this->array_like = new JSObject(array('foo' => 'bar'));
}
function tearDown()
{
unset($this->empty);
unset($this->object);
unset($this->array_like);
}
function testCreation()
{
// Empty is not array like
$this->assertFalse(is_like_array($this->empty));
// Empty object is array like - because objects are truthy
$this->assertTrue(is_like_array($this->object));
}
}
// --------------------------------------------------------------------------
/**
* Test Class for JSObject class
*/
class JSObjectTest extends UnitTestCase {
function __construct()
{
parent::__construct('JSObject Class Tests');
}
function setUp()
{
$this->JSO = new JSObject(array(
'foo' => 54,
'bar' => 'baz',
));
}
function tearDown()
{
unset($this->JSO);
}
function testCreation()
{
// __toString produces same output as print_r by default
$this->assertIdentical($this->JSO->__toString(), '<pre>'.print_r($this->JSO, TRUE).'</pre>');
}
}
// --------------------------------------------------------------------------
/**
* Test class for miniMVC class
*/
class miniMVCTest extends UnitTestCase {
function __construct()
{
parent::__construct('miniMVC Class Tests');
}
function setUp()
{
$this->mm = new miniMVC();
}
function tearDown()
{
unset($this->mm);
}
function testCreation()
{
// miniMVC::get_instance returns reference to latest miniMVC object
$this->assertReference($this->mm, miniMVC::get_instance());
// Expect an error trying to clone the miniMVC object
$this->expectError("Clone is not allowed.");
$mm2 = clone $this->mm;
// miniMVC extends JSObject, right?
$this->assertIsA($this->mm, 'JSObject');
// Invoke function should return the same reference than miniMVC::get_instance() does
$mm = $this->mm;
$this->assertIdentical($mm(), miniMVC::get_instance());
$this->assertIdentical($this->mm->__invoke(), miniMVC::get_instance());
}
}
// --------------------------------------------------------------------------
class DBTest extends UnitTestCase {
function __construct()
{
}
function setUp()
{
}
function tearDown()
{
}
function testCreation()
{
}
}