mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-16 09:22:33 +00:00
Improve test coverage.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user