www.gusucode.com > KPPW众包威客PHP开源建站系统 v3.0源码程序 > KPPW/vendor/phpspec/phpspec/src/PhpSpec/Formatter/Html/ReportItemFactory.php
<?php /* * This file is part of PhpSpec, A php toolset to drive emergent * design by specification. * * (c) Marcello Duarte <marcello.duarte@gmail.com> * (c) Konstantin Kudryashov <ever.zet@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PhpSpec\Formatter\Html; use PhpSpec\Event\ExampleEvent; use PhpSpec\Formatter\Presenter\PresenterInterface; use PhpSpec\Formatter\Template as TemplateInterface; class ReportItemFactory { /** * @var TemplateInterface */ private $template; /** * @param TemplateInterface $template */ public function __construct(TemplateInterface $template) { $this->template = $template; } /** * @param ExampleEvent $event * @param PresenterInterface $presenter * * @return ReportFailedItem|ReportPassedItem|ReportPendingItem */ public function create(ExampleEvent $event, PresenterInterface $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()); } } /** * @param integer $result * * @throws InvalidExampleResultException */ private function invalidResultException($result) { throw new InvalidExampleResultException( "Unrecognised example result $result" ); } }