Example #1
0
 def test_credit_acc_below_zero(self):
     chrgamt = "$2589"
     crdamt = "$2600"
     acc = Account(name="Alan", ccnum="4111111111111111", cclimit="$3000")
     acc.charge_acc(chrgamt)
     acc.credit_acc(crdamt)
     self.assertEqual(acc.balance, -11)
 def test_process_input_credit_acc(self):
     dict = {}
     acc =  Account(name='Tom', ccnum='4111111111111111', cclimit='$1000')
     acc.charge_acc('$800')
     dict[acc.name] = acc
     accarry = runapp.process_input('Credit Tom $500',dict)
     self.assertEqual(dict[acc.name].name, 'Tom')
     self.assertEqual(dict[acc.name].ccnum, 4111111111111111)
     self.assertEqual(dict[acc.name].cclimit, 1000)
     self.assertEqual(dict[acc.name].balance, 300)
Example #3
0
def process_input(input, accdict):
    """
    Process all arguments into accounts and add them to the dictionary. Return a dictionary of all active accounts.
    :param input: the command line arguments converted into a list:
    :param accdict: a dictionary containing all active accounts with the account name as a key.
    :return an updated accdict:
    """
    accinfo = input.split()
    if accinfo[1] in accdict:
        acc = accdict[accinfo[1]]
    else:
        acc = None
    if not acc and accinfo[0] == 'Add':
        acc = Account(name=accinfo[1], ccnum=accinfo[2], cclimit=accinfo[3])
    if acc and accinfo[0] == 'Charge':
        acc.charge_acc(accinfo[2])
    if acc and accinfo[0] == 'Credit':
        acc.credit_acc(accinfo[2])
    accdict[acc.name] = acc
    return accdict
Example #4
0
 def test_cln_amt(self):
     acc = Account(name="Alan", ccnum="5454545454545454", cclimit="$3000")
     self.assertEqual(acc._cln_amt("$10000"), 10000)
Example #5
0
 def test_credit_acc_decline_invalid_cc_num(self):
     acc = Account(name="Alan", ccnum="1234567890123456", cclimit="$3000")
     self.assertFalse(acc.credit_acc("$59"))
Example #6
0
 def test_charge_acc_success_then_decline(self):
     acc = Account(name="Alan", ccnum="4111111111111111", cclimit="$1000")
     self.assertTrue(acc.charge_acc("$300"))
     self.assertFalse(acc.charge_acc("$2701"))
Example #7
0
 def test_charge_acc_declined(self):
     acc = Account(name="Alan", ccnum=4111111111111111, cclimit="$3000")
     self.assertFalse(acc.charge_acc("$3500"))
Example #8
0
 def test_charge_acc_accepted(self):
     acc = Account(name="Alan", ccnum="4111111111111111", cclimit="$3000")
     self.assertTrue(acc.charge_acc("$3000"))
Example #9
0
 def test_verify_acc_cc_num_change_invalid(self):
     acc = Account(name="Alan", ccnum="5454545454545454", cclimit=3000)
     acc.ccnum = "4111111111111112"
     self.assertEqual(False, acc.ccnum)
Example #10
0
 def test_verify_acc_cc_num_change_valid(self):
     acc = Account(name="Alan", ccnum="5454545454545454", cclimit="$3000")
     acc.ccnum = "4111111111111111"
     self.assertEqual(4111111111111111, acc.ccnum)
Example #11
0
 def test_update_cclimit(self):
     acc = Account(name="Alan", ccnum="5454545454545454", cclimit="$300")
     acc.cclimit = "$850"
     self.assertEqual(850, acc.cclimit)