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()); }
/** * 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'); }