public function testValidationFailsWithCorruptedTransaction() { //Ensuring that validation cascades and checks transactions. $transaction = $this->transferRequest->getTransactions()[0]; $transaction->setAmount(-500); $violations = Validator::validateTransferRequest($this->transferRequest); $this->assertTrue(count($violations) === 1); $this->assertTrue(count($violations->get('transactions')) === 1); }
private function generateTrailerLine(TransferRequest $request) { $items = array(); $items[] = array('%1d', self::RECORD_TRAILER); $items[] = array('%06d', count($request->getTransactions())); $totalAmount = array_sum(array_map(function (MoneyTransferTransaction $transaction) { return $transaction->getAmount(); }, $request->getTransactions())); $items[] = array('%012d', $totalAmount); $items[] = array('%s', str_repeat(' ', 101)); return StringUtil::sprintfItemGroupsToString($items); }