Fix the transaction factory and associated tests.

This commit is contained in:
James Cole 2018-07-07 22:28:08 +02:00
parent e78a59a8a8
commit 8e08ff2d39
3 changed files with 12 additions and 10 deletions

View File

@ -96,7 +96,7 @@ class TransactionFactory
*/ */
public function createPair(TransactionJournal $journal, array $data): Collection public function createPair(TransactionJournal $journal, array $data): Collection
{ {
Log::debug('Start of TransactionFactory::createPair()'); Log::debug('Start of TransactionFactory::createPair()', $data);
// all this data is the same for both transactions: // all this data is the same for both transactions:
$currency = $this->findCurrency($data['currency_id'], $data['currency_code']); $currency = $this->findCurrency($data['currency_id'], $data['currency_code']);
$description = $journal->description === $data['description'] ? null : $data['description']; $description = $journal->description === $data['description'] ? null : $data['description'];
@ -105,12 +105,8 @@ class TransactionFactory
$sourceType = $this->accountType($journal, 'source'); $sourceType = $this->accountType($journal, 'source');
$destinationType = $this->accountType($journal, 'destination'); $destinationType = $this->accountType($journal, 'destination');
if (null === $sourceType || null === $destinationType) { Log::debug(sprintf('Expect source account to be of type "%s"', $sourceType));
throw new FireflyException('Could not determine source or destination type.'); Log::debug(sprintf('Expect source destination to be of type "%s"', $destinationType));
}
Log::debug(sprintf('Expect source account to be of type %s', $sourceType));
Log::debug(sprintf('Expect source destination to be of type %s', $destinationType));
// find source and destination account: // find source and destination account:
$sourceAccount = $this->findAccount($sourceType, $data['source_id'], $data['source_name']); $sourceAccount = $this->findAccount($sourceType, $data['source_id'], $data['source_name']);

View File

@ -62,6 +62,11 @@ class RuleGroupTransformer extends TransformerAbstract
$this->parameters = $parameters; $this->parameters = $parameters;
} }
/**
* @param RuleGroup $ruleGroup
*
* @return FractalCollection
*/
public function includeRules(RuleGroup $ruleGroup): FractalCollection public function includeRules(RuleGroup $ruleGroup): FractalCollection
{ {
return $this->collection($ruleGroup->rules, new RuleTransformer($this->parameters), 'rules'); return $this->collection($ruleGroup->rules, new RuleTransformer($this->parameters), 'rules');

View File

@ -705,7 +705,8 @@ class TransactionFactoryTest extends TestCase
{ {
// objects: // objects:
$asset = $this->user()->accounts()->where('account_type_id', 3)->first(); $asset = $this->user()->accounts()->where('account_type_id', 3)->first();
$opposing = $this->user()->accounts()->where('id', '!=', $asset->id)->where('account_type_id', 3)->first(); $reconAccount = $this->user()->accounts()->where('account_type_id', 10)->first();
//$opposing = $this->user()->accounts()->where('id', '!=', $asset->id)->where('account_type_id', 3)->first();
$euro = TransactionCurrency::first(); $euro = TransactionCurrency::first();
$foreign = TransactionCurrency::where('id', '!=', $euro->id)->first(); $foreign = TransactionCurrency::where('id', '!=', $euro->id)->first();
@ -721,7 +722,7 @@ class TransactionFactoryTest extends TestCase
'description' => null, 'description' => null,
'source_id' => $asset->id, 'source_id' => $asset->id,
'source_name' => null, 'source_name' => null,
'destination_id' => $opposing->id, 'destination_id' => $reconAccount->id,
'destination_name' => null, 'destination_name' => null,
'amount' => '10', 'amount' => '10',
'reconciled' => false, 'reconciled' => false,
@ -740,7 +741,7 @@ class TransactionFactoryTest extends TestCase
$budgetFactory->shouldReceive('setUser'); $budgetFactory->shouldReceive('setUser');
$categoryFactory->shouldReceive('setUser'); $categoryFactory->shouldReceive('setUser');
// first search action is for the asset account, second is for expense account. // first search action is for the asset account, second is for expense account.
$accountRepos->shouldReceive('findNull')->andReturn($asset, $opposing); $accountRepos->shouldReceive('findNull')->andReturn($asset, $reconAccount);
// factories return various stuff: // factories return various stuff:
$budgetFactory->shouldReceive('find')->andReturn(null); $budgetFactory->shouldReceive('find')->andReturn(null);