public void WhenAccountNumbersAreRead_ExpectedStringRepresentationOfAccountNumbersReturned()
        {
            // Arrange
            var accountNumberA = new AccountNumberAsPipesAndUnderscores(new[] { One, Two, Three, Four, Five, Six, Seven, Eight, Nine });
            var accountNumberB = new AccountNumberAsPipesAndUnderscores(new[] { Eight, Seven, Six, Five, Four, Three, Two, One, Zero });
            var testAccountNumbers = new[]
            {
                accountNumberA,
                accountNumberB
            };

            this._mockOCRService.Setup(x => x.ReadAccountNumbers(It.IsAny<IEnumerable<string>>())).Returns(testAccountNumbers);

            // Act
            var result = this.Act();

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(2, result.Count());
            Assert.IsTrue(result.Contains(accountNumberA.GetAccountNumber().ToString()));
            Assert.IsTrue(result.Contains(accountNumberB.GetAccountNumber().ToString()));
        }
        public void WhenAccountNumberContainsAllZeros_ExpectedOneToNineInString()
        {
            // Arrange
            this._accountNumberAsPipesAndUnderScores = new AccountNumberAsPipesAndUnderscores(
                new[]
                {
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                });

            // Act
            var result = this.Act();

            // Assert
            Assert.AreEqual("000000000", result.ToString());
        }
        public void WhenAccountNumberContainsDigitsOneToNine_ExpectedOneToNineInString()
        {
            // Arrange
            this._accountNumberAsPipesAndUnderScores = new AccountNumberAsPipesAndUnderscores(
                new[]
                {
                    One,
                    Two,
                    Three,
                    Four,
                    Five,
                    Six,
                    Seven,
                    Eight,
                    Nine
                });

            // Act
            var result = this.Act();

            // Assert
            Assert.AreEqual("123456789", result.ToString());
        }
        public void WhenAccountNumberContainsAnIllegibleDigit_ExpectedDigitRepresentedAsQuestionMark()
        {
            // Arrange
            this._accountNumberAsPipesAndUnderScores = new AccountNumberAsPipesAndUnderscores(
                new[]
                {
                    Illegible,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                    Zero,
                });

            // Act
            var result = this.Act();

            // Assert
            Assert.AreEqual("?00000000", result.ToString());
        }