Last minute test fixes.

This commit is contained in:
James Cole 2018-07-03 19:04:46 +02:00
parent d3a1f43cbb
commit 8eb4259be0
2 changed files with 20 additions and 8 deletions

View File

@ -81,7 +81,7 @@ final class HasAnyBudget extends AbstractTrigger implements TriggerInterface
} }
} }
Log::debug(sprintf('RuleTrigger HasAnyBudget for journal #%d: count is %d, return false.', $journal->id, $count)); Log::debug(sprintf('RuleTrigger HasAnyBudget for journal #%d: final is false.', $journal->id));
return false; return false;
} }

View File

@ -25,6 +25,7 @@ namespace Tests\Unit\TransactionRules\Triggers;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\TransactionRules\Triggers\HasAnyBudget; use FireflyIII\TransactionRules\Triggers\HasAnyBudget;
use Log;
use Tests\TestCase; use Tests\TestCase;
/** /**
@ -43,7 +44,7 @@ class HasAnyBudgetTest extends TestCase
$journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first(); $journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first();
$count = $journal->transactions()->count(); $count = $journal->transactions()->count();
$loop++; $loop++;
} while ($count !== 0 && $loop < 30); } while ($count !== 2 && $loop < 30);
$budget = $journal->user->budgets()->first(); $budget = $journal->user->budgets()->first();
$journal->budgets()->detach(); $journal->budgets()->detach();
@ -67,7 +68,7 @@ class HasAnyBudgetTest extends TestCase
$journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first(); $journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first();
$count = $journal->transactions()->count(); $count = $journal->transactions()->count();
$loop++; $loop++;
} while ($count !== 0 && $loop < 30); } while ($count !== 2 && $loop < 30);
$journal->budgets()->detach(); $journal->budgets()->detach();
$this->assertEquals(0, $journal->budgets()->count()); $this->assertEquals(0, $journal->budgets()->count());
@ -88,26 +89,37 @@ class HasAnyBudgetTest extends TestCase
*/ */
public function testTriggeredTransactions(): void public function testTriggeredTransactions(): void
{ {
Log::debug('Now in testTriggeredTransactions()');
$loop = 0; $loop = 0;
do { do {
Log::debug(sprintf('Loop is now at #%d', $loop));
/** @var TransactionJournal $journal */ /** @var TransactionJournal $journal */
$journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first(); $journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first();
$count = $journal->transactions()->count(); $count = $journal->transactions()->count();
Log::debug(sprintf('Found journal #%d with %d transactions', $journal->id, $count));
$loop++; $loop++;
} while ($count !== 0 && $loop < 30); } while ($count !== 2 && $loop < 30);
Log::debug('end of loop!');
$budget = $journal->user->budgets()->first(); $budget = $journal->user->budgets()->first();
Log::debug(sprintf('First budget is %d ("%s")', $budget->id, $budget->name));
$journal->budgets()->detach(); $journal->budgets()->detach();
$this->assertEquals(0, $journal->budgets()->count()); $this->assertEquals(0, $journal->budgets()->count());
Log::debug('Survived the assumption.');
// append to transaction // append to transaction
Log::debug('Do transaction loop.');
foreach ($journal->transactions()->get() as $index => $transaction) { foreach ($journal->transactions()->get() as $index => $transaction) {
Log::debug(sprintf('Now at index #%d, transaction #%d', $index, $transaction->id));
$transaction->budgets()->detach(); $transaction->budgets()->detach();
if (0 === $index) { if (0 === $index) {
Log::debug('Index is zero, attach budget.');
$transaction->budgets()->save($budget); $transaction->budgets()->save($budget);
} }
} }
Log::debug('Done with loop, make trigger');
$trigger = HasAnyBudget::makeFromStrings('', false); $trigger = HasAnyBudget::makeFromStrings('', false);
$result = $trigger->triggered($journal); $result = $trigger->triggered($journal);
$this->assertTrue($result); $this->assertTrue($result);