. */ declare(strict_types=1); namespace Tests\Unit\TransactionRules\Triggers; use FireflyIII\Models\Note; use FireflyIII\Models\TransactionJournal; use FireflyIII\TransactionRules\Triggers\NotesAre; use Tests\TestCase; /** * Class NotesAreTest * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @SuppressWarnings(PHPMD.TooManyPublicMethods) */ class NotesAreTest extends TestCase { /** * @covers \FireflyIII\TransactionRules\Triggers\NotesAre */ public function testTriggered(): void { $journal = $this->getRandomWithdrawal(); $journal->notes()->delete(); $note = new Note(); $note->noteable()->associate($journal); $note->text = 'Bla bla bla'; $note->save(); $trigger = NotesAre::makeFromStrings('Bla bla bla', false); $result = $trigger->triggered($journal); $this->assertTrue($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\NotesAre */ public function testTriggeredDifferent(): void { $journal = $this->getRandomWithdrawal(); $journal->notes()->delete(); $note = new Note(); $note->noteable()->associate($journal); $note->text = 'Some note'; $note->save(); $trigger = NotesAre::makeFromStrings('Not the note', false); $result = $trigger->triggered($journal); $this->assertFalse($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\NotesAre */ public function testTriggeredEmpty(): void { $journal = $this->getRandomWithdrawal(); $journal->notes()->delete(); $note = new Note(); $note->noteable()->associate($journal); $note->text = ''; $note->save(); $trigger = NotesAre::makeFromStrings('', false); $result = $trigger->triggered($journal); $this->assertFalse($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\NotesAre */ public function testTriggeredNone(): void { $journal = $this->getRandomWithdrawal(); $journal->notes()->delete(); $trigger = NotesAre::makeFromStrings('Bla bla', false); $result = $trigger->triggered($journal); $this->assertFalse($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\NotesAre */ public function testWillMatchEverythingNotNull(): void { $value = 'x'; $result = NotesAre::willMatchEverything($value); $this->assertFalse($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\NotesAre */ public function testWillMatchEverythingNull(): void { $value = null; $result = NotesAre::willMatchEverything($value); $this->assertTrue($result); } }