/** * コンテキストに状態が適用されている間、 IContext.phase() * メソッドを実行することで、このメソッドが呼び出されます。 * * @param IContext $context コンテキスト。 */ public function phase(IContext $context) { $storage =& $context->getStorage(); $dom = $this->createXmlFromStorage($storage); //$this->putXml($dom); $this->putHtml($dom); $context->setNextState(EmptyState::getInstance()); }
/** @scenario 特定の環境の場合、次の状態を選択できる */ public function shouldSelectNextStateAtDesignateToTweet() { $this->given('初期状態としてインスタンスを食わせたコンテキストを取得する')->when('REST情報を設定する', 'post', '/tweet')->and('カレントディレクトリ値を改変する', '/application')->and('コンテキストを実行する')->and('カレントディレクトリ値を改変する', null)->then('ワークが書き換わらない')->and('前回の状態が正しい', EmptyState::getInstance())->and('現在の状態が正しい', ControllerState::getInstance())->and('次回の状態が正しい', TweetState::getInstance()); }
/** インスタンスを取得する */ protected function getInstance(array &$world, array $arguments) { $this->assertTrue(class_exists('UnityCrash\\State\\EmptyState'), 'クラスが存在する'); $world[self::INSTANCE] = EmptyState::getInstance(); $world[self::CONTEXT] = new Context(); }
/** @scenario コンテキストをリセットできる */ public function shouldCanTerminate() { $this->given('インスタンスを生成する')->when('次回の状態を指定する', StateA::getInstance())->and('現在の状態を次回の状態で確定する')->and('次回の状態を指定する', StateB::getInstance())->and('現在の状態を次回の状態で確定する')->and('ストレージの特定のキーに値を設定する', 'foo', 255)->and('コンテキストをリセットする')->then('ストレージの内容は指定した通りである', array())->and('前回の状態は指定した通りである', EmptyState::getInstance())->and('現在の状態は指定した通りである', EmptyState::getInstance())->and('次回の状態は指定した通りである', null); }
/** @scenario 既定のステータスをワークに設定できる */ public function shouldSetDefaultStatus() { $this->given('初期状態としてインスタンスを食わせたコンテキストを取得する')->when('コンテキストを実行する')->then('ワークのエラー種別が正しい', false)->and('ワークのエラーコードが正しい', 0)->and('ワークのメッセージが正しい', '')->and('前回の状態が正しい', EmptyState::getInstance())->and('現在の状態が正しい', MessageState::getInstance())->and('次回の状態が正しい', ViewState::getInstance()); }