public void AddNewAccountForCustomer_CustomerAlreadyHasAnAccountOfThatType_ShouldFail()
        {
            //Arrange
            Customer    customer      = new CustomerBuilder().WithId().Build();
            AccountType type          = Random.NextAccountType();
            string      accountNumber = Guid.NewGuid().ToString();
            var         accounts      = new List <Account>()
            {
                new AccountBuilder().WithCustomerId(customer.Id).WithType(type).Build()
            };

            customer.TrySetAccounts(accounts);

            //Act
            Result result = _service.AddNewAccountForCustomer(customer, accountNumber, type);

            //Assert
            Assert.That(result.IsSuccess, Is.False);
            Assert.That(result.Message, Contains.Substring("type").IgnoreCase, "The result message should contain the word 'type'.");
            _accountRepositoryMock.Verify(repo => repo.Add(It.IsAny <Account>()), Times.Never,
                                          "The 'Add' method of the repository should not have been called.");
        }