示例#1
0
        public async Task WriteService_CreateQuizWithQuestion_CreatedSucessfully()
        {
            using var dbTrans = await NoCommitFactory().Create();

            var writeService = GetQuizWriteService(dbTrans);
            var quizBuilder  = QuizBuilder.New().WithTitle("Test Quiz");
            await writeService.CreateQuiz(quizBuilder.Entity);

            var service = GetQuizReadService(dbTrans);
            var quiz    = Assert.Single(await service.GetAllQuiz());

            Assert.NotNull(quiz);

            var questionBuilder1 = QuestionBuilder.New().WithText("Question 1");
            var questionBuilder2 = QuestionBuilder.New().WithText("Question 2");
            var questionBuilder3 = QuestionBuilder.New().WithText("Question 3");
            var questionBuilder4 = QuestionBuilder.New().WithText("Question 4");

            await writeService.CreateQuestion(quiz.Id, questionBuilder1.Entity);

            await writeService.CreateQuestion(quiz.Id, questionBuilder2.Entity);

            await writeService.CreateQuestion(quiz.Id, questionBuilder3.Entity);

            await writeService.CreateQuestion(quiz.Id, questionBuilder4.Entity);

            quiz = await service.GetQuizById(quiz.Id);

            Assert.InRange(quiz.Questions.ToList().Count, 4, 4);
        }
示例#2
0
        public async Task WriteService_DeleteAnswer_DeleteSucessfully()
        {
            using var dbTrans = await NoCommitFactory().Create();

            var service      = GetQuizReadService(dbTrans);
            var writeService = GetQuizWriteService(dbTrans);

            await writeService.CreateQuiz(QuizBuilder.New().WithTitle("Test Quiz")
                                          .WithQuestion(QuestionBuilder.New().WithText("Question 1").WithAnswer(AnswerBuilder.New().WithText("Test Answer 1").Entity)
                                                        .Entity).Entity);

            var quiz = Assert.Single(await service.GetAllQuiz());

            Assert.NotNull(quiz);

            Assert.NotEmpty(quiz.Questions);
            var question = quiz.Questions.First();
            await writeService.DeleteAnswer(question.AvailableAnswers.First().Id);

            quiz = await service.GetQuizById(quiz.Id);

            Assert.NotNull(quiz);
            Assert.NotEmpty(quiz.Questions);
            Assert.Null(quiz.Questions.First().AvailableAnswers);
        }
示例#3
0
    QuizBuilder inst;   // might make this a singleton

    public void constructor(int num, QuizBuilder qb, GameObject qi)
    {
        myIndex       = num;
        inst          = qb;
        questionInput = qi;
        saveBtn       = questionInput.transform.GetChild(8).GetComponent <SaveButton>();
        dltBtn        = questionInput.transform.GetChild(9).GetComponent <DeleteButton>();
        isNew         = true;

        OnPointerClick(null);
    }
        public void GenerateQuestions_ShouldNotifyCorrectlyWhenMoreThanFiveAnswers()
        {
            // arrange
            QuizBuilder builder  = new QuizBuilder();
            Question    question = new Question(1, "question", new List <string> {
                "1", "2", "3", "4", "5", "6"
            }, 1);
            var expected = "The question with the following text";
            // act
            var actual = builder.NotifyIfFiveOrMoreAnswers(question.Answers);

            // assert
            Assert.IsTrue(actual.Contains(expected));
        }
示例#5
0
 private void Awake()
 {
     if (inst == null)
     {
         inst = this;
         gm   = GameManager.inst;
         gm.LoadQuizButtons();
         Time.timeScale = 1;
         gameObject.SetActive(false);
     }
     else
     {
         Destroy(this);
     }
 }
示例#6
0
        public async Task WriteService_CreateQuizWithQuestionsAndAnswersAndCorrectAnswer_CreatedSucessfully()
        {
            using var dbTrans = await NoCommitFactory().Create();

            var service          = GetQuizReadService(dbTrans);
            var writeService     = GetQuizWriteService(dbTrans);
            var questionBuilder1 = QuestionBuilder.New().WithText("Question 1").WithAnswers(new List <Answer>
            {
                AnswerBuilder.New().WithText("Q1: Answer 1").Entity,
                AnswerBuilder.New().WithText("Q1: Answer 2").Entity,
                AnswerBuilder.New().WithText("Q1: Answer 3").Entity
            });

            var questionBuilder2 = QuestionBuilder.New().WithText("Question 2").WithAnswers(new List <Answer>
            {
                AnswerBuilder.New().WithText("Q2: Answer 1").Entity,
                AnswerBuilder.New().WithText("Q2: Answer 2").Entity,
                AnswerBuilder.New().WithText("Q2: Answer 3").Entity
            });

            var quizBuilder = QuizBuilder.New().WithTitle("Test Quiz").WithQuestions(new List <Question> {
                questionBuilder1.Entity, questionBuilder2.Entity
            });
            await writeService.CreateQuiz(quizBuilder.Entity);

            var quiz = Assert.Single(await service.GetAllQuiz());

            Assert.NotNull(quiz);

            Assert.InRange(quiz.Questions.ToList().Count, 2, 2);

            foreach (var question in quiz.Questions)
            {
                Assert.Null(question.CorrectAnswer);
                Assert.InRange(question.AvailableAnswers.Count(), 3, 3);
            }

            quiz = await service.GetQuizById(quiz.Id);

            Assert.NotNull(quiz);
            var q = quiz.Questions.First();

            q.CorrectAnswer = q.AvailableAnswers.First();
            await writeService.UpdateQuestion(q);

            Assert.Single(quiz.Questions.Where(a => a.CorrectAnswer != null).ToList());
        }
示例#7
0
        public async Task WriteService_DeleteQuiz_DeleteSucessfully()
        {
            using var dbTrans = await NoCommitFactory().Create();

            var service      = GetQuizReadService(dbTrans);
            var writeService = GetQuizWriteService(dbTrans);

            await writeService.CreateQuiz(QuizBuilder.New().WithTitle("Test Quiz").Entity);

            var quiz = Assert.Single(await service.GetAllQuiz());

            Assert.NotNull(quiz);

            await writeService.DeleteQuiz(quiz.Id);

            await Assert.ThrowsAsync <InvalidOperationException>(() => service.GetQuizById(quiz.Id));

            var allQuiz = await service.GetAllQuiz();

            Assert.Empty(allQuiz);
        }
示例#8
0
        public async Task WriteService_CreateQuizResponse_CreatedSucessfully()
        {
            using var dbTrans = await NoCommitFactory().Create();

            var service          = GetQuizReadService(dbTrans);
            var writeService     = GetQuizWriteService(dbTrans);
            var questionBuilder1 = QuestionBuilder.New().WithText("Question 1").WithAnswers(new List <Answer>
            {
                AnswerBuilder.New().WithText("Q1: Answer 1").Entity,
                AnswerBuilder.New().WithText("Q1: Answer 2").Entity,
                AnswerBuilder.New().WithText("Q1: Answer 3").Entity
            });

            var questionBuilder2 = QuestionBuilder.New().WithText("Question 2").WithAnswers(new List <Answer>
            {
                AnswerBuilder.New().WithText("Q2: Answer 1").Entity,
                AnswerBuilder.New().WithText("Q2: Answer 2").Entity,
                AnswerBuilder.New().WithText("Q2: Answer 3").Entity
            });

            var quizBuilder = QuizBuilder.New().WithTitle("Test Quiz").WithQuestions(new List <Question> {
                questionBuilder1.Entity, questionBuilder2.Entity
            });
            await writeService.CreateQuiz(quizBuilder.Entity);

            var quiz = Assert.Single(await service.GetAllQuiz());

            Assert.NotNull(quiz);

            Assert.InRange(quiz.Questions.ToList().Count, 2, 2);

            foreach (var question in quiz.Questions)
            {
                Assert.Null(question.CorrectAnswer);
                Assert.InRange(question.AvailableAnswers.Count(), 3, 3);
            }

            quiz = await service.GetQuizById(quiz.Id);

            Assert.NotNull(quiz);
            var q = quiz.Questions.First();

            q.CorrectAnswer = q.AvailableAnswers.First();
            await writeService.UpdateQuestion(q);

            Assert.Single(quiz.Questions.Where(a => a.CorrectAnswer != null).ToList());

            var q2 = quiz.Questions.Last();

            q2.CorrectAnswer = q2.AvailableAnswers.Last();
            await writeService.UpdateQuestion(q2);

            quiz = await service.GetQuizById(quiz.Id);

            Assert.InRange(quiz.Questions.Where(a => a.CorrectAnswer != null).ToList().Count, 2, 2);


            // Quiz is ready now

            await writeService.CreateQuizResponse(new QuizResponse
            {
                Quiz = quiz, Question = quiz.Questions.First(), GivenAnswer = quiz.Questions.First().AvailableAnswers.Last() // wrong answer
            });

            await writeService.CreateQuizResponse(new QuizResponse
            {
                Quiz = quiz, Question = quiz.Questions.Last(), GivenAnswer = quiz.Questions.Last().AvailableAnswers.Last() // correct answer
            });

            var response = await service.GetQuizResponse(quiz.Id);

            Assert.NotEmpty(response);

            Assert.InRange(response.Count(), 2, 2);

            Assert.Equal(1, response.Sum(s => s.AnswerPoint));
        }
示例#9
0
 void Start()
 {
     gm = GameManager.inst;
     qb = QuizBuilder.inst;
 }
示例#10
0
 // Use this for initialization
 private void Awake()
 {
     QuizManager.GetInstance().InitializeQuizManager(QuizBuilder.BuildQuiz(null), quizUiController);
 }
示例#11
0
 private void QuizGame_Load(object sender, EventArgs e)
 {
     quizTimer.Start();
     timerLabel.Text = seconds.ToString();
     quizBuilder     = new QuizBuilder(this, map, course, questions, QuestionIndex);
 }