示例#1
0
        public void TestGetStartValuesCheatNumber()
        {
            BullsAndCowsGame_Accessor game = new BullsAndCowsGame_Accessor();

            game.GenerateRandomDigits();
            game.GetCheat();
            game.GetStartValues();

            char[] expected = { 'X', 'X', 'X', 'X' };
            char[] actual   = game.CheatNumber;

            CollectionAssert.AreEqual(expected, actual,
                                      "GetStartValues didn't intialize the help cheat array properly!");
        }
示例#2
0
        public void TestGetCheatCountAfter3CallingsOfHelp()
        {
            BullsAndCowsGame_Accessor game =
                SetSecretNumberDigits(1, 2, 3, 4);

            game.Cheats = 3;

            int    expectedCheatsCount = 4;
            string actualCheatNumber   = game.GetCheat();
            int    actualCheatsCount   = game.Cheats;

            Assert.AreEqual <int>(actualCheatsCount, expectedCheatsCount,
                                  INCORRECT_CHEATS_COUNT_MSG);
        }
示例#3
0
        public void TestGetStartValuesCount()
        {
            BullsAndCowsGame_Accessor game =
                new BullsAndCowsGame_Accessor();

            game.GenerateRandomDigits();
            game.GetCheat();
            game.GetStartValues();

            int expected = 0;
            int actual   = game.Cheats;

            Assert.AreEqual <int>(expected, actual,
                                  "GetStartValues didn't make used cheats number 0.");
        }
示例#4
0
        public void TestGetCheat10CallingsOfHelp()
        {
            BullsAndCowsGame_Accessor game =
                SetSecretNumberDigits(1, 2, 3, 4);

            string expected = "1234";
            string actual   = String.Empty;

            for (int i = 0; i < 10; i++)
            {
                actual = game.GetCheat();
            }

            Assert.AreEqual <string>(expected, actual,
                                     INCORRECT_CHEAT_NUMBER_MSG);
        }
示例#5
0
        public void TestGetCheat10CallingsOfHelpCheatsCountShouldBe4()
        {
            BullsAndCowsGame_Accessor game =
                SetSecretNumberDigits(1, 2, 3, 4);

            int    expectedCheatsCount = 4;
            string actualCheatNumber   = String.Empty;

            for (int i = 0; i < 10; i++)
            {
                actualCheatNumber = game.GetCheat();
            }
            int actualCheatsCount = game.Cheats;

            Assert.AreEqual <int>(actualCheatsCount, expectedCheatsCount,
                                  INCORRECT_CHEATS_COUNT_MSG);
        }
示例#6
0
        public void TestGetCheatIsOnlyOneDigitRevealedAtTime()
        {
            BullsAndCowsGame_Accessor game =
                SetSecretNumberDigits(1, 2, 3, 4);

            string actualCheatNumber = String.Empty;

            for (int i = 3; i >= 0; i--)
            {
                int expectedUnrevealedCount = i;
                actualCheatNumber = game.GetCheat();
                int currentUnrevealedCount =
                    CountUnrevealedDigits(game.CheatNumber);

                Assert.AreEqual <int>(currentUnrevealedCount, expectedUnrevealedCount,
                                      INCORRECT_CHEATS_COUNT_MSG);
            }
        }
示例#7
0
        public void TestExecuteCommandGuessedMessageWithCheats()
        {
            BullsAndCowsGame_Accessor game = SetSecretNumberDigits(1, 2, 3, 4);
            StringBuilder             sb   = new StringBuilder();
            StringWriter writer            = new StringWriter(sb);

            Console.SetOut(writer);

            Scoreboard scoreboard = new Scoreboard();

            game.GetCheat();
            game.ExecuteCommand(scoreboard, "1234");
            writer.Close();

            string expected = "Congratulations! You guessed the secret number in 1 attempt and 1 cheat." +
                              Environment.NewLine + "You are not allowed to enter the top scoreboard." +
                              Environment.NewLine +
                              "Top scoreboard is empty." + Environment.NewLine;
            string actual = sb.ToString();

            Assert.AreEqual <string>(expected, actual,
                                     EXECUTING_COMMAND_ERROR_MSG);
        }