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);
     }
 }