public function testPHPClass()
{
$class = new Lisphp_Runtime_PHPClass('ArrayObject');
$obj = $this->applyFunction($class, array(1, 2, 3));
$this->assertType('ArrayObject', $obj);
$this->assertEquals(array(1, 2, 3), $obj->getArrayCopy());
try {
new Lisphp_Runtime_PHPClass('UndefinedClassName');
$this->fail();
} catch (UnexpectedValueException $e) {
# pass
}
$class = new Lisphp_Runtime_PHPClass('Lisphp_SampleClass');
$methods = $class->getStaticMethods();
$this->assertEquals(2, count($methods));
$this->assertType('Lisphp_Runtime_PHPFunction', $methods['a']);
$this->assertEquals(array('Lisphp_SampleClass', 'a'), $methods['a']->callback);
$this->assertType('Lisphp_Runtime_PHPFunction', $methods['b']);
$this->assertEquals(array('Lisphp_SampleClass', 'b'), $methods['b']->callback);
$this->assertTrue($class->isClassOf(new Lisphp_SampleClass()));
$this->assertFalse($class->isClassOf(new stdClass()));
$this->assertFalse($class->isClassOf(213));
}