Esempio n. 1
0
        public void Model_WordQuiz_Hint()
        {
            // Arrange
            var quiz = new WordQuiz();
            quiz.English = "Saturday";
            quiz.Czech = "Sobota";

            // Act + Assert
            Assert.IsTrue(quiz.userTranslation.Equals(String.Empty));
            quiz.Hint();
            Assert.IsTrue (quiz.userTranslation.Equals ("S*****"),"Hint failed on level 1");
            quiz.Hint();
            Assert.IsTrue(quiz.userTranslation.Equals("So****"), "Hint failed on level 2");
            quiz.Hint();
            Assert.IsTrue(quiz.userTranslation.Equals("Sob***"), "Hint failed on level 3");
            quiz.Hint();
            Assert.IsTrue(quiz.userTranslation.Equals("Sobo**"), "Hint failed on level 4");
            quiz.Hint();
            Assert.IsTrue(quiz.userTranslation.Equals("Sobot*"), "Hint failed on level 5");
            quiz.Hint();
            Assert.IsTrue(quiz.userTranslation.Equals("Sobota"), "Hint failed on level 6");
            // At this point, it should validate OK
            var validationErrors = quiz.Validate(null);
            Assert.IsTrue(validationErrors.ToList().Count == 0, "Word quiz does not validate successfully after as many hints as its word length");

            // Test that any further quizzes don't break
            for (int i = 0; i < 100; i++)
            {
                quiz.Hint();
                Assert.IsTrue(quiz.userTranslation.Equals("Sobota"), "Hint failed when over the word length");
            }
        }
 /// <summary>
 /// Provides a hint for the supplied word as a JSON object
 /// </summary>
 /// <param name="userWord"></param>
 /// <returns></returns>
 public JsonResult Hint(WordQuiz userWord)
 {
     // Apply the hint for the word
     userWord.Hint();
     // Return the word with updated hint info serialized as Json
     return Json(userWord, JsonRequestBehavior.AllowGet);
 }
Esempio n. 3
0
        public void Model_WordQuiz_DefaultConstructor()
        {
            //arrange
            var quiz = new WordQuiz();

            // act

            // Assert
            Assert.IsNotNull(quiz, "WordQuiz created by default constructor is supposed to be non-null");
        }
Esempio n. 4
0
        public void Model_WordQuiz_Constructor()
        {
            //Arrange
            var word = new Word();
            word.English = ENGLISH;
            word.Czech = CZECH;
            var quiz = new WordQuiz(word);

            //Act

            //Assert: ensure that the properties map to the word object
            Assert.IsNotNull(quiz, "WordQuiz created by constructor is supposed to be non-null");
            Assert.AreEqual(quiz.English, word.English, "Word and Test Word English property do not match");
            Assert.AreEqual(quiz.Czech, word.Czech, "Word and Test Word Czech property do not match");
            Assert.IsTrue(quiz.hintLevel == 0, "Initial hint level is not 0");
        }
 public JsonResult CheckWord(WordQuiz word)
 {
     // Use validation to check whether the user's guess was successful or not
     return Json (ModelState.IsValid);
 }
Esempio n. 6
0
        public void Model_WordQuiz_HintOnEmptyCzech()
        {
            // Arrange
            var quiz = new WordQuiz();
            quiz.English = "ABCDE";

            // Act + Assert
            Assert.IsTrue(quiz.userTranslation.Equals(String.Empty));

            quiz.Hint(); // This should throw as English is null ATM
        }
Esempio n. 7
0
        public void Model_WordQuiz_Validation()
        {
            //Arrange
            var quiz = new WordQuiz();
            quiz.Czech = CZECH;
            quiz.English = ENGLISH;

            //Assert (wrong translation yields validation errors)
            quiz.userTranslation = ENGLISH;
            var validationErrors = quiz.Validate(null);
            Assert.IsFalse(validationErrors.ToList ().Count == 0);

            //Assert (right translation yields no validation errors)
            quiz.userTranslation = CZECH;
            validationErrors = quiz.Validate(null);
            Assert.IsTrue(validationErrors.ToList().Count == 0);
        }