public void WhenTheAccountNumberHas8Digits_ExpectedValidationFailure()
        {
            // Arrange
            var digits = Enumerable.Range(0, 8);
            this._accountNumber = new AccountNumber(digits);

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

            // Assert
            Assert.IsFalse(result);
        }
        public void WhenTheResultOfTheCheckSumIs1_ExpectedValidationFailure()
        {
            // Arrange
            var digits = new[] { 1, 2, 4, 0, 8, 1, 3, 0, 5 };

            this._accountNumber = new AccountNumber(digits);

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

            // Assert
            Assert.IsFalse(result);
        }
        public void WhenTheResultOfTheCheckSumIs0_ExpectedValidationSuccess()
        {
            // Arrange
            var digits = new[] { 8, 6, 0, 8, 8, 8, 7, 9, 7 };

            this._accountNumber = new AccountNumber(digits);

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

            // Assert
            Assert.IsTrue(result);
        }
        public void WhenADigitIsMinus1_ExpectedDigitReplacedWithQuestionMark()
        {
            // Arrange
            var digits = new[] { -1, 2, 3, 4, 5, 6, 7, 8, 9 };

            this._accountNumber = new AccountNumber(digits);

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

            // Assert
            Assert.AreEqual("?23456789", result);
        }
        public void WhenTheDigitsDoNotPassTheCheckSum_ExpectedERRAddedToEndOfString()
        {
            // Arrange
            var digits = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 8 };

            this._accountNumber = new AccountNumber(digits);

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

            // Assert
            Assert.AreEqual("123456788 ERR", result);
        }
        public void WhenTheAccountNumberIsValid_ExpectedOnlyAccountNumberReturned()
        {
            // Arrange
            var digits = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

            this._accountNumber = new AccountNumber(digits);

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

            // Assert
            Assert.AreEqual("123456789", result);
        }
        public void WhenOneOfTheDigitsIsMinus1_ExectedILLAddedToEndOfString()
        {
            // Arrange
            var digits = new[] { -1, 2, 3, 4, 5, 6, 7, 8, 9 };

            this._accountNumber = new AccountNumber(digits);

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

            // Assert
            Assert.AreEqual("?23456789 ILL", result);
        }