public function testSystemWideInitializeEvent()
{
$events = array();
$ph = $this->pheasant;
$this->pheasant->events()->register('afterInitialize', function ($e, $schema) use(&$events, $ph) {
// Issue #49
// make sure this doesn't trigger recursion
$mapper = $ph->mapperFor($schema->className());
$events[] = func_get_args();
});
$this->initialize('Pheasant\\Tests\\Examples\\EventTestObject', function ($builder) {
$builder->properties(array('test' => new Types\StringType()));
});
$this->assertCount(1, $events);
$this->assertEquals('Pheasant\\Tests\\Examples\\EventTestObject', $events[0][1]->className());
$this->assertEquals('afterInitialize', $events[0][0]);
}