. */ namespace Tests\Unit\Console\Commands\Correction; use Log; use Tests\TestCase; /** * Class TransferBudgetsTest * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @SuppressWarnings(PHPMD.TooManyPublicMethods) */ class TransferBudgetsTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', get_class($this))); } /** * @covers \FireflyIII\Console\Commands\Correction\TransferBudgets */ public function testHandle(): void { $this->artisan('firefly-iii:fix-transfer-budgets') ->expectsOutput('No invalid budget/journal entries.') ->assertExitCode(0); } /** * @covers \FireflyIII\Console\Commands\Correction\TransferBudgets */ public function testHandleBudget(): void { $deposit = $this->getRandomDeposit(); $budget = $this->user()->budgets()->inRandomOrder()->first(); $deposit->budgets()->save($budget); $this->artisan('firefly-iii:fix-transfer-budgets') ->expectsOutput(sprintf('Transaction journal #%d is a %s, so has no longer a budget.', $deposit->id, $deposit->transactionType->type)) ->expectsOutput('Corrected 1 invalid budget/journal entries (entry).') ->assertExitCode(0); // verify change $this->assertCount(0, $deposit->budgets()->get()); } }