. */ namespace Tests\Unit\Console\Commands\Correction; use FireflyIII\Models\BudgetLimit; use FireflyIII\Models\TransactionCurrency; use Log; use Tests\TestCase; /** * Class EnableCurrenciesTest * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @SuppressWarnings(PHPMD.TooManyPublicMethods) */ class EnableCurrenciesTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', get_class($this))); } /** * @covers \FireflyIII\Console\Commands\Correction\EnableCurrencies */ public function testHandle(): void { // assume the current database is intact. $count = TransactionCurrency::where('enabled', 1)->count(); $this->artisan('firefly-iii:enable-currencies') ->expectsOutput('All currencies are correctly enabled or disabled.') ->assertExitCode(0); $this->assertCount($count, TransactionCurrency::where('enabled', 1)->get()); } /** * @covers \FireflyIII\Console\Commands\Correction\EnableCurrencies */ public function testHandleDisabled(): void { // find a disabled currency, update a budget limit with it. $currency = TransactionCurrency::where('enabled', 0)->first(); /** @var BudgetLimit $budgetLimit */ $budgetLimit = BudgetLimit::inRandomOrder()->first(); $budgetLimit->transaction_currency_id = $currency->id; $budgetLimit->save(); // assume the current database is intact. $count = TransactionCurrency::where('enabled', 1)->count(); $this->artisan('firefly-iii:enable-currencies') ->expectsOutput(sprintf('%d were (was) still disabled. This has been corrected.', 1)) ->assertExitCode(0); // assume its been enabled. $this->assertCount($count + 1, TransactionCurrency::where('enabled', 1)->get()); } }