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((int)GetFieldValue(sn, "_count") == 0, "_count initieras inte till 0."); }
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 CheckCountField() { var sn = new SecretNumber(); var number = (int)GetFieldValue(sn, "_number"); while (number >= 94) { sn.Initialize(); number = (int)GetFieldValue(sn, "_number"); } Assert.IsTrue((int)GetFieldValue(sn, "_count") == 0, "_count är inte 0 trots att ingen gissning gjorts."); int count = 0; for (int i = 94; i <= 100; i++) { CallMakeGuess(sn, i); Assert.IsTrue((int)GetFieldValue(sn, "_count") == ++count, String.Format("_count är inte {0} trots att {0} gissning(ar) gjorts.", count)); } try { CallMakeGuess(sn, number); Assert.IsTrue((int)GetFieldValue(sn, "_count") == 7, "_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."); }