public function changingCallback()
{
$calls = (object) array('retval' => true);
$assertAble = function ($className) use(&$calls) {
$calls->log[] = array($className);
$calls->count[$className] = 1 + @$calls->count[$className];
return $calls->retval;
};
$handler = $this->create(null, AutoloadHandler::NO_EXCEPTION);
$this->assertFalse($handler->__invoke("Test"));
$this->assertObjectNotHasAttribute('count', $calls);
$handler->setCallback($assertAble);
$this->assertTrue($handler->__invoke("Test"));
$this->assertEquals(1, $calls->count["Test"]);
$handler->setCallback(null);
$this->assertFalse($handler->__invoke("Test"));
$this->assertEquals(1, $calls->count["Test"]);
}