public function testSequentialProcess() { $a = new A(); $b = new B(); $sequentialProcess = new TestSequentialProcess($a, $b); $sequentialProcess->run('stepA', array('b' => 'x')); $this->assertEquals('stepB', $sequentialProcess->getNextStep()); $this->assertEquals(array('subStep' => 1), $sequentialProcess->getNextParams()); $this->assertEquals('Step B Message', $sequentialProcess->getNextMessage()); }
/** * Example of a sequential process. * @see TestCompleteSequentialProcessView * @see TestSequentialProcess * @param string $step */ function actionSequentialProcess($step) { if (isset($_GET['nextParams'])) { $nextParams = $_GET['nextParams']; } else { $nextParams = null; } Yii::import('application.core.tests.unit.models.*'); Yii::import('application.core.tests.unit.components.*'); Yii::import('application.core.tests.unit.views.*'); assert('$step == null || is_string($step)'); assert('$nextParams == null || is_array($nextParams)'); //////Do setup logic here if needed $a = new A(); $b = new B(); $sequentialProcess = new TestSequentialProcess($a, $b); $sequentialProcess->run($step, $nextParams); $nextStep = $sequentialProcess->getNextStep(); $route = $this->getModule()->getId() . '/' . $this->getId() . '/sequentialProcess'; if ($sequentialProcess->isComplete()) { //////Do completion logic here if needed $sequenceView = new TestCompleteSequentialProcessView($a, $b); } else { $sequenceView = SequentialProcessViewFactory::makeBySequentialProcess($sequentialProcess, $route); } if ($step == null) { $gridView = new GridView(2, 1); $titleBarView = new TitleBarView('Zurmo', 'Test Sequential Process'); $wrapperView = new SequentialProcessContainerView($sequenceView, $sequentialProcess->getAllStepsMessage()); $gridView->setView($titleBarView, 0, 0); $gridView->setView($wrapperView, 1, 0); $view = new ZurmoConfigurationPageView(ZurmoDefaultViewUtil::makeStandardViewForCurrentUser($this, $gridView)); } else { $view = new AjaxPageView($sequenceView); } echo $view->render(); }