コード例 #1
0
 public async Task <JsonResult> QQGetByQuizInfo(string id)
 {
     try {
         var data = QuizQuestionService.GetByQuizInfo(Guid.Parse(id));
         return(Success(QuizQuestionsVM.MsToVMs(data)));
     } catch { return(Failed(MessageUtility.ServerError())); }
 }
コード例 #2
0
        public void Should_Generate_Random_Quiz_Questions()
        {
            // Arrange
            var randomCounter = new Dictionary <string, int>();
            var mockQuizQuestionRepository = new Mock <IQuizQuestionRepository>();

            mockQuizQuestionRepository.Setup(m => m.GetAll()).Returns(GetMockQuizQuestions());
            var service = new QuizQuestionService(mockQuizQuestionRepository.Object, new Mock <IValidationDictionary>().Object);

            // Act
            for (var i = 1; i < 500; i++)
            {
                var question = service.GetRandomQuizQuestion();
                if (randomCounter.ContainsKey(question.Question))
                {
                    randomCounter[question.Question]++;
                }
                else
                {
                    randomCounter.Add(question.Question, 1);
                }
            }

            // Assert
            // NOTE: In this instance since it's not easy to truly test for random, I'm outputting the
            //       result for a quick check by eye.
            foreach (var key in randomCounter.Keys)
            {
                Console.WriteLine($"{key} was retrieved {randomCounter[key]} times");
            }
        }
コード例 #3
0
 public QuizQuestionController(AuthenticationService authenticationService, LogService logService, UserService userService, LabGroupService labGroupService, LabCourseService labCourseService, QuizQuestionService quizQuestionService, TokenService tokenService)
 {
     _authenticationService = authenticationService;
     _logService            = logService;
     _userService           = userService;
     _labGroupService       = labGroupService;
     _labCourseService      = labCourseService;
     _quizQuestionService   = quizQuestionService;
     _tokenService          = tokenService;
 }
コード例 #4
0
 public async Task <JsonResult> QQRemove()
 {
     try {
         var id   = Guid.Parse(Request.Form["id"]);
         var qiid = Guid.Parse(Request.Form["qiid"]);
         if (QuizQuestionService.Remove(id, qiid))
         {
             return(Success(""));
         }
         return(Failed(MessageUtility.ServerError()));
     } catch { return(Failed(MessageUtility.ServerError())); }
 }
コード例 #5
0
        public void Should_Get_Random_Quiz_Question_From_Repository()
        {
            // Arrange
            var mockQuizQuestionRepository = new Mock <IQuizQuestionRepository>();

            mockQuizQuestionRepository.Setup(m => m.GetAll()).Returns(GetMockQuizQuestions());
            var service = new QuizQuestionService(mockQuizQuestionRepository.Object, new Mock <IValidationDictionary>().Object);

            // Act
            service.GetRandomQuizQuestion();

            // Assert
            mockQuizQuestionRepository.Verify(m => m.GetAll(), Times.Once);
        }
コード例 #6
0
 public async Task <JsonResult> QQUpdate()
 {
     try
     {
         var id       = Guid.Parse(Request.Form["id"]);
         var qi       = Guid.Parse(Request.Form["qi"]);
         var question = Request.Form["quest"];
         var point    = int.Parse(Request.Form["point"]);
         if (QuizQuestionService.Update(id, qi, question, point))
         {
             return(Success(""));
         }
         return(Failed(MessageUtility.ServerError()));
     }
     catch { return(Failed(MessageUtility.ServerError())); }
 }
コード例 #7
0
 public async Task <JsonResult> QQInsert()
 {
     try {
         var id     = Guid.Parse(Request.Form["id"]);
         var quest  = Request.Form["quest"];
         var qi     = Guid.Parse(Request.Form["qi"]);
         var order  = int.Parse(Request.Form["order"]);
         var point  = int.Parse(Request.Form["point"]);
         var status = Guid.Parse(Request.Form["status"]);
         if (QuizQuestionService.Insert(id, quest, qi, order, point, status))
         {
             return(Success(id.ToString()));
         }
         return(Failed(MessageUtility.ServerError()));
     } catch { return(Failed(MessageUtility.ServerError())); }
 }
コード例 #8
0
        public void Should_Not_Error_On_Generating_Random_Questions_If_No_Questions_Configured()
        {
            // Arrange
            var randomCounter = new Dictionary <string, int>();
            var mockQuizQuestionRepository = new Mock <IQuizQuestionRepository>();

            mockQuizQuestionRepository.Setup(m => m.GetAll()).Returns(new List <QuizQuestion>());
            var service = new QuizQuestionService(mockQuizQuestionRepository.Object, new Mock <IValidationDictionary>().Object);

            // Act
            var question = service.GetRandomQuizQuestion();

            // Assert
            mockQuizQuestionRepository.Verify(m => m.GetAll(), Times.Once);
            Assert.IsNull(question);
        }
コード例 #9
0
        public void Should_Not_Save_Invalid_QuizQuestions()
        {
            // Arrange
            var mockQuizQuestionRepository = new Mock <IQuizQuestionRepository>();
            var mockValidationDictionary   = new MockValidationDictionary();
            var service = new QuizQuestionService(mockQuizQuestionRepository.Object, mockValidationDictionary);

            // Act
            bool result = service.AddNewQuizQuestion(new QuizQuestionViewModel {
                Question = "Q", Answer = ""
            });

            // Assert
            Assert.IsFalse(mockValidationDictionary.IsValid);
            Assert.IsTrue(mockValidationDictionary.Errors.ContainsKey("Answer"));
            mockQuizQuestionRepository.Verify(m => m.AddQuestion(It.IsAny <QuizQuestion>()), Times.Never);
            mockQuizQuestionRepository.Verify(m => m.SaveChanges(), Times.Never);
        }
コード例 #10
0
        public void Should_Call_Save_Methods_When_Question_Saved()
        {
            // Arrange
            var mockQuizQuestionRepository = new Mock <IQuizQuestionRepository>();
            var mockValidationDictionary   = new MockValidationDictionary();
            var service = new QuizQuestionService(mockQuizQuestionRepository.Object, mockValidationDictionary);

            // Act
            var result = service.AddNewQuizQuestion(new QuizQuestionViewModel {
                Question = "Q", Answer = "A"
            });

            // Assert
            Assert.IsTrue(mockValidationDictionary.IsValid);                                              // Should be perfectly valid and therefore ...
            mockQuizQuestionRepository.Verify(m => m.AddQuestion(It.IsAny <QuizQuestion>()), Times.Once); // ... changes are made to the table ...
            mockQuizQuestionRepository.Verify(m => m.SaveChanges(), Times.Once);                          // ... and saved ...
            Assert.IsTrue(result);                                                                        // ... returning true
        }
コード例 #11
0
 public QuizQuestionServiceTests()
 {
     _dbContext           = DbContextProvider.GetSqlServerDbContext();
     _quizQuestionService = new QuizQuestionService(_dbContext);
 }