예제 #1
0
        public void PokerFaceMain_FileHasTwoValidCardHands_EvaluatesBothHandsAndEnds()
        {
            using (var sw = new StringWriter())
            {
                Console.SetOut(sw);

                // Arrange
                const string cardHandLine1 = "2D 3D 4D 5D 6D";
                const string cardHandLine2 = "2C 3C 4C 5C 6C";

                _cardHandsFileReader.FileExists().Returns(true);
                _cardHandsFileReader.AtEndOfFile().Returns(false, false, true);
                _cardHandsFileReader.ReadNextCardHandLine().Returns(cardHandLine1, cardHandLine2);

                var pokerFaceMain = new PokerFaceMain(_cardHandsFileReader, _pokerHandNamer);

                // Act
                var result = pokerFaceMain.EvaluateHands();

                // Assert
                Assert.AreEqual((int)Constants.ExitStatusCode.Success, result);
                _cardHandsFileReader.Received(1).CloseFile();
                Assert.AreEqual("2D 3D 4D 5D 6D => Straight flush\r\n2C 3C 4C 5C 6C => Straight flush\r\n", sw.ToString());
            }

            Console.SetOut(new StreamWriter(Console.OpenStandardOutput()));
        }
예제 #2
0
        public void PokerFaceMain_FileNotFound_ExitsEarly()
        {
            // Arrange
            _cardHandsFileReader.FileExists().Returns(false);
            var pokerFaceMain = new PokerFaceMain(_cardHandsFileReader, _pokerHandNamer);

            // Act
            var result = pokerFaceMain.EvaluateHands();

            // Assert
            Assert.AreEqual((int)Constants.ExitStatusCode.InputFileNotFound, result);
        }