예제 #1
0
파일: Base.php 프로젝트: h-inuzuka/quiz
 protected function setUp()
 {
     $schema_sql = file_get_contents(TEST_SCHEMA_SQL);
     \Illuminate\Database\Capsule\Manager::connection()->getPdo()->exec($schema_sql);
     $createQuestion0 = new M_Question();
     $createQuestion0->createQuestion('タイトル0', '問題文00', '選択肢01', '選択肢02', '選択肢03', '選択肢04', 4);
     $createQuestion00 = new M_Question();
     $createQuestion00->createQuestion('タイトル00', '問題文00', '選択肢10', '選択肢20', '選択肢30', '選択肢40', 3);
     $createQuestion000 = new M_Question();
     $createQuestion000->createQuestion('タイトル000', '問題文000', '選択肢100', '選択肢200', '選択肢300', '選択肢400', 3);
     $createQuestion0000 = new M_Question();
     $createQuestion0000->createQuestion('タイトル0000', '問題文0000', '選択肢1000', '選択肢2000', '選択肢3000', '選択肢4000', 3);
     $createQuestion00000 = new M_Question();
     $createQuestion00000->createQuestion('タイトル00000', '問題文00000', '選択肢10000', '選択肢20000', '選択肢30000', '選択肢40000', 3);
     $createQuestion000000 = new M_Question();
     $createQuestion000000->createQuestion('タイトル000000', '問題文00000000', '選択肢10000000', '選択肢20000000', '選択肢30000000', '選択肢40000000', 3);
     $createQuestion0000000 = new M_Question();
     $createQuestion0000000->createQuestion('タイトル0000000', '問題文0000000', '選択肢1000000', '選択肢2000000', '選択肢3000000', '選択肢4000000', 3);
     $createQuestion00000000 = new M_Question();
     $createQuestion00000000->createQuestion('タイトル00000000', '問題文00000000', '選択肢10000000', '選択肢20000000', '選択肢30000000', '選択肢40000000', 3);
     $createQuestion000000000 = new M_Question();
     $createQuestion000000000->createQuestion('タイトル000000000', '問題文000000000', '選択肢100000000', '選択肢200000000', '選択肢300000000', '選択肢400000000', 3);
     $createQuestion0000000000 = new M_Question();
     $createQuestion0000000000->createQuestion('タイトル0000000000', '問題文0000000000', '選択肢1000000000', '選択肢2000000000', '選択肢3000000000', '選択肢4000000000', 3);
     $createQuestion999 = new M_Question();
     $createQuestion999->createQuestion('タイトル999', '問題文999', '選択肢1999', '選択肢2999', '選択肢3999', '選択肢4999', 3);
     $quiz = new M_Quiz();
     $title = 'クイズタイトルテスト0';
     $quizlist = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
     //クイズを作成
     $quizId = $quiz->createQuiz($title, $quizlist);
 }
예제 #2
0
파일: Quiz.php 프로젝트: h-inuzuka/quiz
 public function createQuiz($quizTitle, $questionIdList)
 {
     $quiz = new Quiz();
     $quiz->title = $quizTitle;
     $quiz->save();
     $quiz->questions()->sync($questionIdList);
     return $quiz->id;
 }
예제 #3
0
파일: Answer.php 프로젝트: h-inuzuka/quiz
 public function answerStart()
 {
     $app = \Slim\Slim::getInstance();
     $params = $app->request->params();
     $quizzes = new M_Quiz();
     $questionList = $quizzes->find($params['quiz_id'])->questions;
     $answer = new M_Answer();
     $nickname = 'land';
     $answerId = $answer->answerStart($params['quiz_id'], $nickname);
     $app->render('Answer/answer_start.twig', ['question_list' => $questionList, 'answer_id' => $answerId]);
 }
예제 #4
0
파일: Quiz.php 프로젝트: h-inuzuka/quiz
 public function createQuiz()
 {
     $app = \Slim\Slim::getInstance();
     $params = $app->request->params();
     $error_list = V_Quiz::byArray($params);
     //         var_dump($params);
     //         exit;
     if (empty($error_list)) {
         $quiz = new M_Quiz();
         $quizId = $quiz->createQuiz($params['title'], $params['question']);
         $app->redirect('/quiz/quizzes');
     } else {
         list($question_list) = M_Question::getQuestions();
         $app->render('Quiz/create.twig', ['params' => $params, 'error_list' => $error_list, 'question_list' => $question_list]);
     }
 }
예제 #5
0
파일: Answer.php 프로젝트: h-inuzuka/quiz
 public function showResult($answerId)
 {
     //該当するanswerIdの解答結果を取得
     $answer = new Answer();
     $answerResult = $answer->find($answerId);
     //各問題の正解を取得
     $quiz = new M_Quiz();
     $quiz = $quiz->find($answerResult['quiz_id']);
     $questions = M_Quiz::find($quiz['id'])->questions;
     //解答結果と正解を比較
     $correctNumber = 0;
     if ($answerResult['answer1'] === $questions[0]['correct_answer']) {
         $correctNumber++;
     }
     if ($answerResult['answer2'] === $questions[1]['correct_answer']) {
         $correctNumber++;
     }
     if ($answerResult['answer3'] === $questions[2]['correct_answer']) {
         $correctNumber++;
     }
     if ($answerResult['answer4'] === $questions[3]['correct_answer']) {
         $correctNumber++;
     }
     if ($answerResult['answer5'] === $questions[4]['correct_answer']) {
         $correctNumber++;
     }
     if ($answerResult['answer6'] === $questions[5]['correct_answer']) {
         $correctNumber++;
     }
     if ($answerResult['answer7'] === $questions[6]['correct_answer']) {
         $correctNumber++;
     }
     if ($answerResult['answer8'] === $questions[7]['correct_answer']) {
         $correctNumber++;
     }
     if ($answerResult['answer9'] === $questions[8]['correct_answer']) {
         $correctNumber++;
     }
     if ($answerResult['answer10'] === $questions[9]['correct_answer']) {
         $correctNumber++;
     }
     //解答時間を計算
     $responseTime = strtotime($answerResult['end_time']) - strtotime($answerResult['start_time']);
     //正解数と解答時間を返却
     return array('nickname' => $answerResult['nickname'], 'correctNumber' => $correctNumber, 'responseTime' => $responseTime);
 }
예제 #6
0
 public function testGetQuiz()
 {
     //1番目のクイズデータと関連するクイズを取得
     $quiz = new M_Quiz();
     $questionList = M_Quiz::find(1);
     //         var_dump($questionList);
     //         exit;
     //実データ確認
     $actualQuiz = M_Quiz::find(1);
     $actualQuestion = M_Question::find(1);
     //件数
     $actual = M_Quiz::find(1)->questions;
     $this->assertEquals(10, count($actual));
     //クイズ情報
     $this->assertEquals('クイズタイトルテスト0', $actualQuiz['title']);
     //問題情報
     $this->assertEquals('タイトル0', $actualQuestion['title']);
     $this->assertEquals('問題文00', $actualQuestion['content']);
 }