public function testSetGetState()
 {
     $transaction = new FinancialTransaction();
     $this->assertEquals(FinancialTransaction::STATE_NEW, $transaction->getState());
     $transaction->setState(FinancialTransaction::STATE_PENDING);
     $this->assertEquals(FinancialTransaction::STATE_PENDING, $transaction->getState());
 }
 protected function createTransaction($amount, $currency)
 {
     $transaction = new FinancialTransaction();
     $transaction->setState(FinancialTransactionInterface::STATE_PENDING);
     $transaction->setRequestedAmount($amount);
     $paymentInstruction = new PaymentInstruction($amount, $currency, 'sips', new ExtendedData());
     $payment = new Payment($paymentInstruction, $amount);
     $payment->addTransaction($transaction);
     return $transaction;
 }
 public function testGetPendingTransactionAndHasPendingTransaction()
 {
     $credit = new Credit($this->getInstruction(), 100);
     $this->assertFalse($credit->hasPendingTransaction());
     $transaction = new FinancialTransaction();
     $credit->addTransaction($transaction);
     $this->assertFalse($credit->hasPendingTransaction());
     $pendingTransaction = new FinancialTransaction();
     $pendingTransaction->setState(FinancialTransactionInterface::STATE_PENDING);
     $credit->addTransaction($pendingTransaction);
     $this->assertTrue($credit->hasPendingTransaction());
     $transaction = new FinancialTransaction();
     $credit->addTransaction($transaction);
     $this->assertTrue($credit->hasPendingTransaction());
     $this->assertSame($pendingTransaction, $credit->getPendingTransaction());
 }
 /**
  * @expectedException JMS\Payment\CoreBundle\PluginController\Exception\InvalidPaymentInstructionException
  */
 public function testApproveAndDepositThrowsExceptionWhenPaymentInstructionHasPendingTransaction()
 {
     $controller = $this->getController();
     $payment = $this->getPayment();
     $payment->getPaymentInstruction()->setState(PaymentInstructionInterface::STATE_VALID);
     $transaction = new FinancialTransaction();
     $transaction->setState(FinancialTransactionInterface::STATE_PENDING);
     $payment->addTransaction($transaction);
     $this->callApproveAndDeposit($controller, array($payment, 100));
 }
 public function testHasPendingTransaction()
 {
     $payment = new Payment($this->getInstruction(), 123);
     $this->assertFalse($payment->hasPendingTransaction());
     $transaction = new FinancialTransaction();
     $payment->addTransaction($transaction);
     $this->assertFalse($payment->hasPendingTransaction());
     $transaction = new FinancialTransaction();
     $transaction->setState(FinancialTransaction::STATE_PENDING);
     $payment->addTransaction($transaction);
     $this->assertTrue($payment->hasPendingTransaction());
 }