public function testPieChart() { $survey = new Survey(); $survey->setSurveyName("hi"); $survey->setDescription('stuff'); $q = new SurveyQuestion(); $q->setType(QuestionType::YesNo()); $q->setQuestion("Is the world round?"); $survey->addQuestion($q); $this->manager->createSurvey($survey); $max = rand(100, 200); $yes = $no = 0; for ($i = 0; $i < $max; ++$i) { $ans = new SurveyAnswer(); $val = "No"; if (rand(0, 1) % 2 == 0) { $val = "Yes"; $yes++; } else { $no++; } $ans->setAnswer($val); $ans->setAnsweredBy("+12064122496"); $this->manager->addAnswer($q->getId(), $ans); } $answers = $this->manager->getAnswers($survey->getId()); $str = ReportChartFormatter::getChartData($answers->getAnswers($q->getId()), ChartFormats::Pie()); $this->assertNotNull($str); $this->assertContains('{"key":"No","val":' . $no . '}', $str); $this->assertContains('{"key":"Yes","val":' . $yes . '}', $str); }
function testYesNoSurveyQuestion() { $v = new AnswerValidatorProvider(); $q = $v->getValidator(QuestionType::YesNo()); $this->assertFalse($q->isValid("what")); $this->assertTrue($q->isValid("Yes")); $this->assertTrue($q->isValid("yes")); $this->assertTrue($q->isValid("yEs")); $this->assertTrue($q->isValid("Y")); $this->assertTrue($q->isValid("y")); $this->assertTrue($q->isValid("No")); $this->assertTrue($q->isValid("no")); $this->assertTrue($q->isValid("NO")); $this->assertTrue($q->isValid("n")); $this->assertTrue($q->isValid("N")); $this->assertFalse($q->isValid(null)); }
function testSurveyState() { $questionStub = $this->getMock('sarhan\\survey\\SurveyQuestion'); $surveyStub = $this->getMock("sarhan\\survey\\Survey"); $surveyStub->expects($this->any())->method('getQuestions')->will($this->returnValue(array($questionStub, $questionStub, $questionStub))); $questionStub->expects($this->any())->method("getType")->will($this->returnValue(QuestionType::YesNo())); $this->assertEquals(array($questionStub, $questionStub, $questionStub), $surveyStub->getQuestions()); $s = new SurveyState(); $s->setSurvey($surveyStub); $this->assertFalse($s->hasId()); $s->setId("foobar"); $this->assertTrue($s->hasId()); $s->setQuestionIndex(0); $q = $s->getQuestion(); $this->assertNotNull($q); $s->setQuestionIndex(3); $q = $s->getQuestion(); $this->assertNull($q); }
public function testSurveyName() { $survey = new Survey(); $survey->setSurveyName("yesno"); $survey->setDescription('stuff'); $q = new SurveyQuestion(); $q->setType(QuestionType::YesNo()); $q->setQuestion("A question"); $survey->addQuestion($q); //add another question $q2 = new SurveyQuestion(); $q2->setType(QuestionType::StarRating()); $secondQuestion = "Second question"; $q2->setQuestion($secondQuestion); $survey->addQuestion($q2); $this->surveyManager->createSurvey($survey); SurveyEntityManager::testClear(); $service = $this->newSurveyService(); $this->request['Body'] = "yesno"; $this->request['From'] = "1234"; $serviced = $service->service(); $this->assertTrue($serviced); $this->request['Body'] = "no"; $this->request['From'] = "1234"; $serviced = $service->service(); $this->assertTrue($serviced); $this->assertContains($secondQuestion, $service->getResponse()->getContent()); }
public function testQuestionHint() { $qt = QuestionType::YesNo(); $this->assertEquals("(Y or N)", $qt->getQuestionHint()); }