function testDBTransaction() { if (self::get_runnable()) { $payment = $this->createARecurringPayment('NZD', '100.00'); $payment->Frequency = 'Monthly'; $payment->StartingDate = date('Y-m-d'); $payment->Times = 100; $payment->write(); $payment->merchantRecurringAuth(self::get_right_cc_data()); if (defined('SS_DATABASE_CLASS') && SS_DATABASE_CLASS == 'PostgreSQLDatabase') { DPSAdapter::set_mode('Rolling_Back_Mode'); $payment->payNext(); DPSAdapter::set_mode('Normal'); } DPSAdapter::set_mode('Error_Handling_Mode'); $payment->payNext(); DPSAdapter::set_mode('Normal'); for ($i = 0; $i < 2; $i++) { $payment->payNext(); } $this->assertType('DataObjectSet', $payment->Payments()); $this->assertType('DataObjectSet', $payment->SuccessPayments()); $this->assertEquals($payment->Payments()->count(), 3); $this->assertEquals($payment->SuccessPayments()->count(), 2); } }