function ucRecurringTestCase::processRecurringFee in UC Recurring Payments and Subscriptions 7.2
Same name and namespace in other branches
- 6.2 uc_recurring.test \ucRecurringTestCase::processRecurringFee()
Process a recurring fee.
3 calls to ucRecurringTestCase::processRecurringFee()
- ucRecurringAPITestCase::testRecurringAdminFunctions in ./
uc_recurring.test - Test administrator functions.
- ucRecurringAPITestCase::testRecurringOrders in ./
uc_recurring.test - Test customer functions of purchasing an order with recurring product.
- ucRecurringIntegrationTestCase::testRecurringPaymentIntegration in ./
uc_recurring.test - place an order with the mock gateway payment module
File
- ./
uc_recurring.test, line 107 - UC Recurring simpletest
Class
- ucRecurringTestCase
- @file UC Recurring simpletest
Code
function processRecurringFee($rfid, $times_to_renew) {
$old_fee = uc_recurring_fee_user_load($rfid);
$current_order_id = empty($old_fee->data['recurring orders']) ? $old_fee->order_id : max($old_fee->data['recurring orders']);
// Simulate the order being ready for renewal by changing the "next_charge"
// field.
// TODO Please review the conversion of this statement to the D7 database API syntax.
/* db_query("UPDATE {uc_recurring_users} SET next_charge=%d WHERE rfid=%d", REQUEST_TIME - 1, $rfid) */
db_update('uc_recurring_users')
->fields(array(
'next_charge' => REQUEST_TIME - 1,
))
->condition('rfid', $rfid)
->execute();
// Run cron function.
uc_recurring_cron();
$new_order_id = $this
->lastCreatedOrderId();
if ($old_fee->remaining_intervals == 0) {
// There should be no new order.
$this
->pass(t('Recurring Fee %rfid has expired', array(
'%rfid' => $rfid,
)));
}
else {
$this
->pass(t('Order %order_id has been created', array(
'%order_id' => $new_order_id,
)));
$fee = uc_recurring_fee_user_load($rfid);
$this
->assertEqual($fee->charged_intervals, $old_fee->charged_intervals + 1, t('Number of intervals been charged is now: %charged.', array(
'%charged' => $fee->charged_intervals,
)));
// Negative intervals means unlimited renewals.
if ($old_fee->remaining_intervals < 0) {
$this
->assertEqual($fee->remaining_intervals, -1, t('Still has unlimited intervals remaining.'));
}
else {
$this
->assertEqual($fee->remaining_intervals, $old_fee->remaining_intervals - 1, t('%remaining_intervals remaining interval.', array(
'%remaining_intervals' => $fee->remaining_intervals,
)));
}
if ($times_to_renew > 1) {
return $this
->processRecurringFee($rfid, $times_to_renew - 1);
}
}
}