// // GET: /Guess/ public ActionResult Index() { if (Session.IsNewSession) { _secretNumber = new SecretNumber(); Session.Add("SecretNumber", _secretNumber); } else { if (Session.Count > 0) { _secretNumber = (SecretNumber)Session["SecretNumber"]; // Check if secret nr should be rebooted if (!_secretNumber.CanMakeGuess) { _secretNumber.Initialize(); } } else { return View("Error", string.Empty, "Sessionen är felaktig"); } } var viewModel = new ViewModel { SecretNumber = _secretNumber }; return View("Index", viewModel); }
public void CheckCanMakeGuessProperty() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } for (int i = 94; i <= 100; i++) { Assert.IsTrue(sn.CanMakeGuess, "Egenskapen CanMakeGuess är inte true trots att alla gissningar inte gjorts."); sn.MakeGuess(i); } Assert.IsFalse(sn.CanMakeGuess, "Egenskapen CanMakeGuess är inte false trots att sju gissningar gjorts."); sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); sn.MakeGuess(number); Assert.IsFalse(sn.CanMakeGuess, "Egenskapen CanMakeGuess är inte false trots att en gissning på rätt tal gjorts."); }
public void CheckCountProperty() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } Assert.IsTrue(sn.Count == 0, "Egenskapen Count är inte 0 trots att ingen gissning gjorts."); int count = 0; for (int i = 94; i <= 100; i++) { sn.MakeGuess(i); Assert.IsTrue(sn.Count == ++count, String.Format("Egenskapen Count är inte {0} trots att {0} gissning(ar) gjorts.", count)); } sn.MakeGuess(number); Assert.IsTrue(sn.Count == 7, "Egenskapen Count slutar inte att räknas upp efter att sju gissningar gjorts och ytterligare gissningar görs."); }
public void CheckInitialize() { var sn = new SecretNumber(); int number; do { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); Assert.IsTrue(number >= 1 && number <= 100, "_number är inte ett tal i det slutna intervallet mellan 1 och 100."); } while (number >= 94); for (int i = 94; i <= 100; i++) { sn.MakeGuess(i); } sn.Initialize(); Assert.IsTrue(sn.GuessedNumbers.Count == 0, "Listan med gamla gissningar töms inte."); Assert.IsTrue(sn.Count == 0, "Count är inte till 0."); Assert.IsNull(sn.LastGuessedNumber.Number, "LastGuessedNumber.Number är inte satt till null."); Assert.IsTrue(sn.LastGuessedNumber.Outcome == Outcome.Indefinite, "LastGuessedNumber.Outcome är inte satt till Outcome.Indefinite."); }
public void CheckNumberProperty() { var sn = new SecretNumber(); Assert.IsNull(sn.Number, "Egenskapen Number returnerar inte null trots att det finns gissningar kvar."); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } for (int i = 94; i <= 100; i++) { sn.MakeGuess(i); } Assert.IsTrue(sn.Number == number, "Egenskapen Number har inte samma värde som fältet _number trots att det inte finns några gissningar kvar."); }
public void CheckMakeGuessNoMoreGuesses() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } for (int i = 94; i <= 100; i++) { sn.MakeGuess(i); } var result = sn.MakeGuess(number); Assert.IsTrue(result == Outcome.NoMoreGuesses, "MakeGuess returnerar inte Outcome.NoMoreGuesses då fler gissningar än sju görs."); //Assert.IsTrue(sn.LastGuessedNumber.Outcome == Outcome.NoMoreGuesses, "Egenskapen LastGuessedNumbers egenskap Outcome är inte Outcome.NoMoreGuesses då fler gissningar än sju görs."); }
public void CheckMakeGuessLow() { var sn = new SecretNumber(); int number, prevNumber, loopCount = 5; do { prevNumber = (int)GetFieldValue(sn, "_number"); Thread.Sleep(100); sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); Assert.IsTrue(number >= 1 && number <= 100, "Initialize(): _number är inte ett tal i det slutna intervallet mellan 1 och 100."); if (--loopCount == 0) { Assert.IsTrue(prevNumber != number, "Initialize(): _number verkar inte slumpas"); return; } } while (number < 2); var result = sn.MakeGuess(1); Assert.IsTrue(result == Outcome.Low, "MakeGuess returnerar inte Outcome.Low då det gissade talet är mindre än det hemliga talet."); Assert.IsTrue(sn.LastGuessedNumber.Outcome == Outcome.Low, "Egenskapen LastGuessedNumber egenskap Outcome är inte Outcome.Low efter en gissning på ett för litet tal gjorts."); }
public void CheckLastGuessedNumberProperty() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } Assert.IsNull(sn.LastGuessedNumber.Number, "Egenskapen LastGuessedNumbers egenskap Guess är inte null trots att ingen gissning gjorts."); sn.MakeGuess(number - 1); Assert.IsTrue(sn.LastGuessedNumber.Number == number - 1, "Egenskapen LastGuessedNumbers egenskap Guess har inte värdet av den senaste gissningen då en gissning på ett för lågt tal gjorts."); sn.MakeGuess(number + 1); Assert.IsTrue(sn.LastGuessedNumber.Number == number + 1, "Egenskapen LastGuessedNumbers egenskap Guess har inte värdet av den senaste gissningen då en gissning på ett för högt tal gjorts."); sn.MakeGuess(number); Assert.IsTrue(sn.LastGuessedNumber.Number == number, "Egenskapen LastGuessedNumbers egenskap Guess har inte värdet av den senaste gissningen då en gissning på rätt tal gjorts."); }
// Inits the secret nr again and sends back to index-method and page public ActionResult Reload() { if (Session.Count > 0) { _secretNumber = (SecretNumber)Session["SecretNumber"]; _secretNumber.Initialize(); return RedirectToAction("Index"); } else { return View("Error", String.Empty, "Sessionen är felaktig"); } }