public function create(ExampleEvent $event, Presenter $presenter)
{
switch ($event->getResult()) {
case ExampleEvent::PASSED:
return new ReportPassedItem($this->template, $event);
case ExampleEvent::PENDING:
return new ReportPendingItem($this->template, $event);
case ExampleEvent::SKIPPED:
return new ReportSkippedItem($this->template, $event);
case ExampleEvent::FAILED:
case ExampleEvent::BROKEN:
return new ReportFailedItem($this->template, $event, $presenter);
default:
$this->invalidResultException($event->getResult());
}
}