public void VerifyDoubleAsHighAsAnyOtherAccount()
        {
            // arrange
            var bankAccount = new BankAccount {
                Balance = 74500.23M
            };
            var bankAccounts = new Mocks.MockRegularBankAccountRepository().GetBankAccounts();
            var doubleAsHighAccountConstraint = new BalanceDoubleAsHighAccountConstraint(bankAccounts);

            // act
            bool isDoubleAsHigh = doubleAsHighAccountConstraint.Verify(bankAccount);

            // assert
            Assert.IsTrue(isDoubleAsHigh);
        }
        public void ExpectDoublePositiveDefaultAccount()
        {
            // arrange
            var bankAccountRepository = new Mocks.MockRegularBankAccountRepository();
            var bankAccounts          = bankAccountRepository.GetBankAccounts();
            var defaultAccountLocator = new DefaultBankAccountLocator(bankAccounts);
            var bankAccount           = default(BankAccount);

            // act
            bankAccount = defaultAccountLocator.FindDefaultBankAccount();
            bool isDoubleHigher = bankAccounts.Where(bankAcc => !bankAcc.Id.Equals(bankAccount.Id)).All(bankAcc =>
            {
                return((bankAcc.Balance * 2) < bankAccount.Balance);
            });

            // assert
            Assert.IsTrue(isDoubleHigher);
        }