/** * * @param StoryTeller $st * @param Injectables $injectables * @param Phase $phase * @param boolean $isActive * @return Phase_Result */ public function playPhase(StoryTeller $st, Injectables $injectables, Phase $phase, $isActive, $thingBeingPlayed = null) { // shorthand $output = $st->getOutput(); $phaseName = $phase->getPhaseName(); // run the phase if we're allowed to if ($isActive) { $st->setCurrentPhase($phase); $phaseResult = $phase->doPhase($thingBeingPlayed); } else { $phaseResult = new Phase_Result($phaseName); $phaseResult->setContinuePlaying($phaseResult::SKIPPED); $output->logPhaseSkipped($phaseName, self::MSG_PHASE_NOT_ACTIVE); } // close off any open log actions $st->closeAllOpenActions(); // stop any running test devices if (!$st->getPersistDevice()) { $st->stopDevice(); } // close off any log actions left open by closing down // the test device $st->closeAllOpenActions(); // all done return $phaseResult; }
/** * * @return string */ public function getCurrentPhaseName() { return $this->currentPhase->getPhaseName(); }