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++) { CallMakeGuess(sn, i); } sn.Initialize(); Assert.IsTrue(sn.Count == 0, "Count initieras inte till 0."); Assert.IsTrue(sn.CanMakeGuess, "CanMakeGuess initieras inte till true."); var guessedNumbers = (int[])GetFieldValue(sn, "_guessedNumbers"); foreach (var guess in guessedNumbers) { Assert.IsTrue(guess == 0, "_guessedNumbers verkar inte tömmas på gammal information."); } }
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.Count == 0, "Count initieras inte till 0."); Assert.IsNull(sn.Guess, "Guess initieras inte till null."); Assert.IsTrue(sn.Outcome == Outcome.Indefinite, "Outcome initieras inte till Outcome.Indefinite."); foreach (var gn in sn.GuessedNumbers) { Assert.IsTrue(gn.Number == null && gn.Outcome == Outcome.Indefinite, "GuessedNumbers verkar inte tömmas på gammal information."); } }
public ActionResult Index() { if (Session.IsNewSession) { _secretNumber = new SecretNumber(); Session.Add("SecretNumber", _secretNumber); } else { if (Session.Count > 0) { _secretNumber = (SecretNumber)Session["SecretNumber"]; // Kollar om hemliga talet behöver "startas om" if (!_secretNumber.CanMakeGuess) { _secretNumber.Initialize(); } } else { return(OutOfTime()); } } var viewModel = new ViewModel { SecretNumber = _secretNumber }; return(View("Index", viewModel)); }
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 intervallet mellan 1 och 100."); } while (number >= 94); for (int i = 94; i <= 100; i++) { CallMakeGuess(sn, i); } sn.Initialize(); Assert.IsTrue((int)GetFieldValue(sn, "_count") == 0, "_count initieras inte till 0."); }
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(); sn.MakeGuess((int)GetFieldValue(sn, "_number")); Assert.IsFalse(sn.CanMakeGuess, "Egenskapen CanMakeGuess är inte false trots att en gissning på rätt tal gjorts."); }
// Initiearar det hemliga talet igen och skickar tillbaka det till index-metoden public ActionResult Reload() { if (Session.Count > 0) { _secretNumber = (SecretNumber)Session["SecretNumber"]; _secretNumber.Initialize(); return(RedirectToAction("Index")); } else { return(View("OutOfTime")); } }
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 CheckGuessProperty() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } Assert.IsNull(sn.Guess, "Egenskapen Guess är inte null trots att ingen gissning gjorts."); sn.MakeGuess(number - 1); Assert.IsTrue(sn.Guess == number - 1, "Egenskapen 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.Guess == number + 1, "Egenskapen 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.Guess == number, "Egenskapen Guess har inte värdet av den senaste gissningen då en gissning på rätt tal gjorts."); }
public void CheckMakeGuesskNoMoreGuesses() { 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.Outcome == Outcome.NoMoreGuesses, "Egenskapen Outcome är inte Outcome.NoMoreGuesses då fler gissningar än sju görs."); }
public void CheckMakeGuessHigh() { 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 > 99); Assert.IsFalse(CallMakeGuess(sn, 100), "MakeGuess returnerar inte false då det gissade talet är högre än det hemliga talet."); }
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 CheckGuessesLeftProperty() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } Assert.IsTrue(sn.GuessesLeft == 7, "GuessesLeft är inte 7 trots att ingen gissning gjorts."); int count = 0; for (int i = 94; i <= 100; i++) { CallMakeGuess(sn, i); Assert.IsTrue(sn.Count == ++count, String.Format("GuessesLeft: GuessesLeft är inte {0} trots att {1} gissning(ar) gjorts.", 7 - count, count)); } }
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++) { CallMakeGuess(sn, i); Assert.IsTrue(sn.Count == ++count, String.Format("Egenskapen Count är inte {0} trots att {0} gissning(ar) gjorts.", count)); } try { CallMakeGuess(sn, number); Assert.IsTrue(sn.Count == 7, "Egenskapen Count slutar inte att räknas upp efter att sju gissningar gjorts och ytterligare gissningar görs."); } catch (ApplicationException) { // Eat! return; } catch { // Eat! } Assert.Fail("ApplicationsException kastas inte då fler gissningar än sju görs."); }
public void CheckMakeGuessHigh() { 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 > 99); var result = sn.MakeGuess(100); Assert.IsTrue(result == Outcome.High, "MakeGuess returnerar inte Outcome.High då det gissade talet är högre än det hemliga talet."); Assert.IsTrue(sn.Outcome == Outcome.High, "Egenskapen Outcome är inte Outcome.High efter en gissning på ett för stort tal gjorts."); }
protected void Button1_Click(object sender, EventArgs e) { if (IsValid) { if (IsPostBack) { SecretNumber thisGuess = SecretN; Outcome guess = thisGuess.MakeGuess(int.Parse(InputTextBox.Text)); if (thisGuess.CanMakeGuess) { Button1.Enabled = true; InputTextBox.Enabled = true; InputTextBox.Focus(); int currentGuess = int.Parse(InputTextBox.Text); bool exists = thisGuess._previousGuesses.Contains(currentGuess); if (!exists) { thisGuess._previousGuesses.Add(int.Parse(InputTextBox.Text)); //guessLabel.Text = thisGuess.Number.ToString(); if (guess == Outcome.High) { Label2.Text = "Du gissade för högt."; } else if (guess == Outcome.Low) { Label2.Text = "Du gissade för lågt."; } } else { Label2.Text = "Du har redan gissat på " + currentGuess; } } else if (guess == Outcome.Correct) { Button1.Enabled = false; InputTextBox.Enabled = false; Label2.Text = "GRATTIS"; ResetPlaceHolder.Visible = true; ResetButton.Focus(); Session.Clear(); thisGuess.Initialize(); } else if (guess == Outcome.NoMoreGuesses) { Button1.Enabled = false; InputTextBox.Enabled = false; Label2.Text = "Ledsen, inga gissningar kvar. Talet var " + thisGuess.Number; ResetPlaceHolder.Visible = true; ResetButton.Focus(); thisGuess.Initialize(); } SecretN = thisGuess; guessLabel.Text = "Tidigare gissningar: " + String.Join(", ", thisGuess.PreviousGuesses); } } }