Improve test coverage.

This commit is contained in:
James Cole
2018-09-02 20:13:25 +02:00
parent 96dd89fbeb
commit de754ca4e0
31 changed files with 861 additions and 385 deletions

View File

@@ -23,7 +23,6 @@ declare(strict_types=1);
namespace Tests\Unit\TransactionRules\Triggers;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\TransactionRules\Triggers\BudgetIs;
use Illuminate\Support\Collection;
use Tests\TestCase;
@@ -38,18 +37,14 @@ class BudgetIsTest extends TestCase
*/
public function testTriggeredJournal(): void
{
do {
$journal = TransactionJournal::inRandomOrder()->where('transaction_type_id', 1)->whereNull('deleted_at')->first();
$count = $journal->transactions()->count();
} while ($count !== 2);
$budget = $journal->user->budgets()->first();
$journal->budgets()->detach();
$journal->budgets()->save($budget);
$this->assertEquals(1, $journal->budgets()->count());
$withdrawal = $this->getRandomWithdrawal();
$budget = $withdrawal->user->budgets()->first();
$withdrawal->budgets()->detach();
$withdrawal->budgets()->save($budget);
$this->assertEquals(1, $withdrawal->budgets()->count());
$trigger = BudgetIs::makeFromStrings($budget->name, false);
$result = $trigger->triggered($journal);
$result = $trigger->triggered($withdrawal);
$this->assertTrue($result);
}
@@ -58,19 +53,15 @@ class BudgetIsTest extends TestCase
*/
public function testTriggeredNotJournal(): void
{
do {
$journal = TransactionJournal::inRandomOrder()->where('transaction_type_id', 1)->whereNull('deleted_at')->first();
$count = $journal->transactions()->count();
} while ($count !== 2);
$budget = $journal->user->budgets()->first();
$otherBudget = $journal->user->budgets()->where('id', '!=', $budget->id)->first();
$journal->budgets()->detach();
$journal->budgets()->save($budget);
$this->assertEquals(1, $journal->budgets()->count());
$withdrawal = $this->getRandomWithdrawal();
$budget = $withdrawal->user->budgets()->first();
$otherBudget = $withdrawal->user->budgets()->where('id', '!=', $budget->id)->first();
$withdrawal->budgets()->detach();
$withdrawal->budgets()->save($budget);
$this->assertEquals(1, $withdrawal->budgets()->count());
$trigger = BudgetIs::makeFromStrings($otherBudget->name, false);
$result = $trigger->triggered($journal);
$result = $trigger->triggered($withdrawal);
$this->assertFalse($result);
}
@@ -79,16 +70,12 @@ class BudgetIsTest extends TestCase
*/
public function testTriggeredTransaction(): void
{
do {
$journal = TransactionJournal::inRandomOrder()->where('transaction_type_id', 1)->whereNull('deleted_at')->first();
$count = $journal->transactions()->count();
} while ($count !== 2);
$withdrawal = $this->getRandomWithdrawal();
/** @var Collection $transactions */
$transactions = $journal->transactions()->get();
$budget = $journal->user->budgets()->first();
$transactions = $withdrawal->transactions()->get();
$budget = $withdrawal->user->budgets()->first();
$journal->budgets()->detach();
$withdrawal->budgets()->detach();
/** @var Transaction $transaction */
foreach ($transactions as $transaction) {
$transaction->budgets()->detach();
@@ -96,10 +83,10 @@ class BudgetIsTest extends TestCase
$this->assertEquals(1, $transaction->budgets()->count());
}
$this->assertEquals(0, $journal->budgets()->count());
$this->assertEquals(0, $withdrawal->budgets()->count());
$trigger = BudgetIs::makeFromStrings($budget->name, false);
$result = $trigger->triggered($journal);
$result = $trigger->triggered($withdrawal);
$this->assertTrue($result);
}