. */ namespace Tests\Unit\Console\Commands\Correction; use FireflyIII\Models\TransactionJournal; use Log; use Tests\TestCase; /** * Class RemoveBillsTest * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @SuppressWarnings(PHPMD.TooManyPublicMethods) */ class RemoveBillsTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', get_class($this))); } /** * @covers \FireflyIII\Console\Commands\Correction\RemoveBills */ public function testHandle(): void { // assume there's nothing to fix. $this->artisan('firefly-iii:remove-bills') ->expectsOutput('All transaction journals have correct bill information.') ->assertExitCode(0); // dont verify anything } /** * @covers \FireflyIII\Console\Commands\Correction\RemoveBills */ public function testHandleWithdrawal(): void { $bill = $this->user()->bills()->first(); $journal = $this->getRandomDeposit(); $journal->bill_id = $bill->id; $journal->save(); $this->artisan('firefly-iii:remove-bills') ->expectsOutput(sprintf('Transaction journal #%d should not be linked to bill #%d.', $journal->id, $bill->id)) ->assertExitCode(0); // verify change $this->assertCount(0, TransactionJournal::where('id', $journal->id)->whereNotNull('bill_id')->get()); } }