. */ declare(strict_types=1); namespace Tests\Unit\TransactionRules\Actions; use FireflyIII\Models\RuleAction; use FireflyIII\TransactionRules\Actions\ClearCategory; use Log; use Tests\TestCase; /** * Class ClearCategoryTest */ class ClearCategoryTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', get_class($this))); } /** * @covers \FireflyIII\TransactionRules\Actions\ClearCategory */ public function testAct(): void { // associate budget with journal: $journal = $this->user()->transactionJournals()->where('description', 'Rule action test transaction.')->first(); $category = $this->user()->categories()->inRandomOrder()->first(); // link a budget. $journal->categories()->save($category); $this->assertGreaterThan(0, $journal->categories()->count()); $array = [ 'transaction_journal_id' => $journal->id, ]; // fire the action: $ruleAction = new RuleAction; $ruleAction->action_value = null; $action = new ClearCategory($ruleAction); $result = $action->actOnArray($array); $this->assertTrue($result); // assert result $this->assertEquals(0, $journal->categories()->count()); } }