. */ declare(strict_types=1); namespace Tests\Unit\TransactionRules\Actions; use FireflyIII\Models\Note; use FireflyIII\Models\RuleAction; use FireflyIII\Models\TransactionJournal; use FireflyIII\TransactionRules\Actions\SetNotes; use Tests\TestCase; /** * Class SetNotesTest */ class SetNotesTest extends TestCase { /** * @covers \FireflyIII\TransactionRules\Actions\SetNotes::__construct() * @covers \FireflyIII\TransactionRules\Actions\SetNotes::act() */ public function testAct() { // give journal a note: $journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first(); $note = $journal->notes()->first(); if (null === $note) { $note = new Note; $note->noteable()->associate($journal); } $note->text = 'Hello test note'; $note->save(); $this->assertEquals(1, $journal->notes()->count()); // fire the action: $ruleAction = new RuleAction; $ruleAction->action_value = 'These are new notes ' . random_int(1, 1234); $action = new SetNotes($ruleAction); $result = $action->act($journal); $this->assertTrue($result); // assert result $this->assertEquals(1, $journal->notes()->count()); $this->assertEquals($note->id, $journal->notes()->first()->id); } /** * @covers \FireflyIII\TransactionRules\Actions\SetNotes::__construct() * @covers \FireflyIII\TransactionRules\Actions\SetNotes::act() */ public function testActNoNotes() { // give journal a note: $journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first(); $journal->notes()->forceDelete(); $this->assertEquals(0, $journal->notes()->count()); // fire the action: $ruleAction = new RuleAction; $ruleAction->action_value = 'These are new notes ' . random_int(1, 1234); $action = new SetNotes($ruleAction); $result = $action->act($journal); $this->assertTrue($result); // assert result $this->assertEquals(1, $journal->notes()->count()); } }