public function testWritingATransactionWillReturnTransactionWithIdSet()
 {
     //txn before the write
     $this->assertNull($this->transaction->getId());
     $this->journalist->expects($this->once())->method('writeTransaction')->will($this->returnValue(new IntType(1)));
     $txn = $this->sut->write($this->transaction);
     //txn after the write
     $this->assertInstanceOf('SAccounts\\Transaction\\SimpleTransaction', $txn);
     $this->assertInstanceOf('Chippyash\\Type\\Number\\IntType', $txn->getId());
     $this->assertEquals(1, $txn->getId()->get());
 }
Example #2
0
 /**
  * Write a Transaction to the Journal and update the Chart
  *
  * @param SplitTransaction $txn
  * @param Chart $chart
  * @param Journal $journal
  *
  * @return SplitTransaction Transaction with txn Id set
  * @throws AccountsException
  */
 public function writeTransaction(SplitTransaction $txn, Chart $chart, Journal $journal)
 {
     return FFor::create()->txn(function () use($journal, $txn) {
         return $journal->write($txn);
     })->chart(function ($txn) use($chart) {
         $chart->getAccount($txn->getDrAc()[0])->debit($txn->getAmount());
         $chart->getAccount($txn->getCrAc()[0])->credit($txn->getAmount());
     })->fyield('txn');
 }