Пример #1
0
        public ActionResult Guesses()
        {
            GuessHandler handler = new GuessHandler();

            StackOverflowSearchVM searchResult = handler.GetRecentGuesses();

            return(View(searchResult));
        }
        public void CanCreateGuessHandler()
        {
            var searchEngine   = new Mock <ISearchEngine>().Object;
            var displayHandler = new Mock <IDisplayHandler>().Object;

            var handler = new GuessHandler(searchEngine, displayHandler);

            Assert.NotNull(handler);
        }
        public void CanDisplayIterationInstructions()
        {
            var searchEngine   = new Mock <ISearchEngine>().Object;
            var displayHandler = new Mock <IDisplayHandler>();

            displayHandler.Setup(mock => mock.DisplayMessage(It.IsAny <string>()));

            var handler = new GuessHandler(searchEngine, displayHandler.Object);

            handler.DisplayGuessIterationInstructions();

            displayHandler.Verify(mock => mock.DisplayMessage(It.IsAny <string>()), Times.Once);
        }
        public void CanHandleGuessingWithBinarySearchEngine()
        {
            const int minimumNumber = 0;
            const int maximumNumber = 1000;
            const int expectedGuess = 500;

            var searchEngine   = new BinarySearchEngine(minimumNumber, maximumNumber);
            var displayHandler = new Mock <IDisplayHandler>().Object;

            var handler     = new GuessHandler(searchEngine, displayHandler);
            var actualGuess = handler.HandleGuess(minimumNumber, maximumNumber);

            Assert.Equal(expectedGuess, actualGuess);
        }
Пример #5
0
        //Submitting the question detail model to this action to maintain the randomized answer sort order
        public async Task <ActionResult> SubmitGuess(StackOverflowQuestionVM vm)
        {
            GuessHandler guessHandler = new GuessHandler();
            var          answerID     = vm.answers.FirstOrDefault(a => a.selected_answer == true).answer_id;
            GuessResult  guessResult  = guessHandler.SubmitGuess(answerID, vm.question_id, vm.title, vm.creation_date);

            StackOverflowDetailsVM result = await CallStackOverflow <StackOverflowDetailsVM>("questions", vm.question_id.ToString(), "order=desc&sort=activity&site=stackoverflow&filter=!-*jbN-o8P3E5");

            var question = result.items.FirstOrDefault();

            vm.body = question.body;

            foreach (var answer in vm.answers)
            {
                answer.body             = question.answers.FirstOrDefault(a => a.answer_id == answer.answer_id).body;
                answer.creation_date    = question.answers.FirstOrDefault(a => a.answer_id == answer.answer_id).creation_date;
                answer.selected_answer  = answer.answer_id == answerID;
                answer.correct_answer   = answer.answer_id == question.accepted_answer_id;
                answer.guess_count      = guessResult.Answers.FirstOrDefault(a => a.AnswerID == answer.answer_id)?.GuessCount ?? 0;
                answer.guess_percentage = guessResult.Answers.FirstOrDefault(a => a.AnswerID == answer.answer_id)?.GuessPercentage ?? 0;
            }

            //Update score
            int total = 0, correct = 0;

#pragma warning disable CS0168 // The variable 'grade' is declared but never used
            string grade;
#pragma warning restore CS0168 // The variable 'grade' is declared but never used
            if (Int32.TryParse(HttpContext.Request.Cookies.Get("total")?.Value, out total))
            {
                total++;
                Response.Cookies["total"].Value = total.ToString();


                if (Int32.TryParse(HttpContext.Request.Cookies.Get("correct")?.Value, out correct))
                {
                    if (vm.answers.Where(a => a.selected_answer.Value && a.correct_answer.Value).Count() > 0)
                    {
                        correct++;
                        Response.Cookies["correct"].Value = correct.ToString();
                    }
                }

                Response.Cookies["grade"].Value = GetLetterGrade(correct, total);
            }

            return(PartialView("_QuestionDetails", vm));
        }
        public void CanHandleGuessingWithMockSearchEngine()
        {
            const int minimumNumber = 0;
            const int maximumNumber = 1000;
            const int expectedGuess = 500;

            var searchEngine = new Mock <ISearchEngine>();

            searchEngine.SetupGet(mock => mock.Guess).Returns(500);
            var displayHandler = new Mock <IDisplayHandler>().Object;

            var handler     = new GuessHandler(searchEngine.Object, displayHandler);
            var actualGuess = handler.HandleGuess(minimumNumber, maximumNumber);

            searchEngine.VerifyGet(mock => mock.Guess, Times.Once);
            Assert.Equal(expectedGuess, actualGuess);
        }
        /// <summary>
        ///     Initializes all of the components.
        /// </summary>
        private void Initialize()
        {
            _searchEngine = new BinarySearchEngine(_minimumNumber, _maximumNumber);
            _match        = new MatchFacade(MaximumRounds);
            _gameState    = GameState.Start;

            _displayHandler       = new DisplayHandler();
            _computerChosenNumber = new NumberPicker(_displayHandler, _maximumNumber, _minimumNumber);

            // Need to set on click events prior to hiding the user interface
            var attemptGuess = new AttemptGuess(_displayHandler, _computerChosenNumber);

            attemptGuess.SetOnClickForAttemptGuess();

            _displayHandler.HideUserInterface();

            _guessHandler  = new GuessHandler(_searchEngine, _displayHandler);
            _inputListener = new InputListener();
            _inputHandler  = new InputHandler(_displayHandler, _inputListener);
        }
Пример #8
0
 void DisplayGuessHandler()
 {
     guessHandler = Object.Instantiate(battleManager.guessHandlerCardPrefab, battleManager.transform);
     guessHandler.onInputSubmitted += StoreHumanGuess;
 }