/** * @param int $timeout_min * @return bool */ public function isExpired($timeout_min) { if (!is_long($this->startTime) || !$this->isState(SurveyExecutionState::InProgress())) { return true; } $diff = time() - $this->startTime; if ($diff > $timeout_min) { return true; } return false; }
public function testExpiration() { $s = new SurveyState(time() - 500); $this->assertTrue($s->isExpired(10)); $s = new SurveyState(time()); $this->assertTrue($s->isExpired(1000)); $s = new SurveyState(time() - 500); $s->setSurveyExecutionState(SurveyExecutionState::InProgress()); $this->assertTrue($s->isExpired(10)); $s = new SurveyState(time()); $s->setSurveyExecutionState(SurveyExecutionState::InProgress()); $this->assertFalse($s->isExpired(1000)); }
function testInvalidAnswer() { $manager = $this->newSurveyService(); $max = 5; $q = "Rate us 1 to {$max}"; $thankYou = "Thank you for filling out the survey. Visit us at farooqmasjid.org"; $s = new Survey(); $s->setSurveyName("my name is john"); $s->setDescription("a survey"); $s->setThankYouMessage($thankYou); $sq = new SurveyQuestion(); $sq->setQuestion($q); $sq->setType(QuestionType::StarRating()); $s->addQuestion($sq); $this->surveyManager->createSurvey($s); SurveyEntityManager::testClear(); $this->request[SurveyRequestService::BODY_KEY] = $s->getSurveyName(); $serviced = $manager->service(); $res = $manager->getResponse(); $this->assertTrue($serviced); $this->assertNotNull($res); $this->assertTrue(count($res->getContent()) > 0); $this->assertTrue(strstr($res->getContent(), $q) !== false); $this->request[SurveyRequestService::BODY_KEY] = "15"; $serviced = $manager->service(); $res = $manager->getResponse(); $this->assertTrue($serviced); $this->assertNotNull($res); $this->assertTrue(count($res->getContent()) > 0); $this->assertTrue(strstr($res->getContent(), "Sorry, we couldn't understand your response. Your answer must be between 1 and 5") !== false); $this->request[SurveyRequestService::BODY_KEY] = "0"; $serviced = $manager->service(); $res = $manager->getResponse(); $this->assertTrue($serviced); $this->assertNotNull($res); $this->assertTrue(count($res->getContent()) > 0); $this->assertTrue(strstr($res->getContent(), "Sorry, we couldn't understand your response") !== false); //$session = $this->session; for ($i = 1; $i <= $max; $i++) { //reset back to first question every time. $this->getSurveyState()->setQuestionIndex(0); $this->getSurveyState()->setSurveyExecutionState(SurveyExecutionState::InProgress()); $this->request[SurveyRequestService::BODY_KEY] = $i; $serviced = $manager->service(); $res = $manager->getResponse(); $this->assertTrue($serviced, "Testing on i = {$i}"); $this->assertNotNull($res); $this->assertTrue(count($res->getContent()) > 0); $this->assertTrue(strstr($res->getContent(), $thankYou) !== false); } }
/** * @param Survey $survey */ private function reset(Survey $survey = null) { unset($this->session[self::SESSION_KEY]); //Lets create and add to the session $this->surveyState = new SurveyState(); if (!is_null($survey)) { $this->surveyState->setSurvey($survey); $this->surveyState->setSurveyExecutionState(SurveyExecutionState::InProgress()); } $this->session[self::SESSION_KEY] = $this->surveyState; //var_dump($this->session[self::SESSION_KEY]); }