예제 #1
0
 /**
  * @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;
 }
예제 #2
0
 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));
 }
예제 #3
0
 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);
     }
 }
예제 #4
0
 /**
  * @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]);
 }