public function testGetReverseCreditTransactions() { $credit = new Credit($this->getInstruction(), 100); $this->assertEquals(0, count($credit->getReverseCreditTransactions())); $transaction = new FinancialTransaction(); $transaction->setTransactionType(FinancialTransaction::TRANSACTION_TYPE_REVERSE_CREDIT); $credit->addTransaction($transaction); $this->assertEquals(1, count($credit->getReverseCreditTransactions())); $transaction = new FinancialTransaction(); $transaction->setTransactionType(FinancialTransaction::TRANSACTION_TYPE_REVERSE_CREDIT); $credit->addTransaction($transaction); $this->assertEquals(2, count($credit->getReverseCreditTransactions())); $transaction = new FinancialTransaction(); $credit->addTransaction($transaction); $this->assertEquals(2, count($credit->getReverseCreditTransactions())); $transaction = new FinancialTransaction(); $transaction->setTransactionType(FinancialTransaction::TRANSACTION_TYPE_REVERSE_CREDIT); $credit->addTransaction($transaction); $this->assertEquals(3, count($credit->getReverseCreditTransactions())); $transaction = new FinancialTransaction(); $credit->addTransaction($transaction); $this->assertEquals(3, count($credit->getReverseCreditTransactions())); $transaction = new FinancialTransaction(); $transaction->setTransactionType(FinancialTransaction::TRANSACTION_TYPE_REVERSE_CREDIT); $credit->addTransaction($transaction); $this->assertEquals(4, count($credit->getReverseCreditTransactions())); }
/** * @dataProvider getTestAmountsForDependentCreditOnRetry * @expectedException \InvalidArgumentException */ public function testCreditOnlyAcceptsValidAmountsForDependentCreditOnRetry($amount) { $controller = $this->getController(); $instruction = new PaymentInstruction(111, 'EUR', 'foo', new ExtendedData()); $instruction->setState(PaymentInstruction::STATE_VALID); $credit = new Credit($instruction, 100); $credit->setState(CreditInterface::STATE_CREDITING); $payment = new Payment($instruction, 10); $payment->setState(Payment::STATE_APPROVED); $credit->setPayment($payment); $credit->setCreditingAmount(7.12); $instruction->setDepositedAmount(10); $payment->setDepositedAmount(5.0); $payment->setCreditingAmount(0.01); $payment->setCreditedAmount(0.01); $payment->setReversingDepositedAmount(0.01); $transaction = new FinancialTransaction(); $transaction->setTransactionType(FinancialTransaction::TRANSACTION_TYPE_CREDIT); $transaction->setState(FinancialTransaction::STATE_PENDING); $credit->addTransaction($transaction); $this->callCredit($controller, array($credit, $amount)); }
public function testHasPendingTransactionOnCredit() { $instruction = $this->getInstruction(); $credit = new Credit($instruction, 123.45); $this->assertFalse($instruction->hasPendingTransaction()); $transaction = new FinancialTransaction(); $credit->addTransaction($transaction); $transaction->setState(FinancialTransaction::STATE_PENDING); $this->assertTrue($instruction->hasPendingTransaction()); }
protected function getTransaction($withCredit = false) { $instruction = new PaymentInstruction(123, 'EUR', 'foo', new ExtendedData()); $transaction = new FinancialTransaction(); if (!$withCredit) { $payment = new Payment($instruction, 100); $payment->addTransaction($transaction); } else { $credit = new Credit($instruction, 123.45); $credit->addTransaction($transaction); } return $transaction; }