. */ declare(strict_types=1); namespace Tests\Unit\TransactionRules\Triggers; use FireflyIII\Models\TransactionJournal; use FireflyIII\TransactionRules\Triggers\HasAttachment; use Tests\TestCase; /** * Class HasAttachmentTest */ class HasAttachmentTest extends TestCase { /** * @covers \FireflyIII\TransactionRules\Triggers\HasAttachment::triggered */ public function testTriggered(): void { do { $journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first(); $count = $journal->attachments()->count(); } while($count !== 0); $attachment = $journal->user->attachments()->first(); $journal->attachments()->save($attachment); $this->assertEquals(1, $journal->attachments()->count()); $trigger = HasAttachment::makeFromStrings('1', false); $result = $trigger->triggered($journal); $this->assertTrue($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\HasAttachment::triggered */ public function testTriggeredFalse(): void { do { // this is kind of cheating but OK. $journal = TransactionJournal::inRandomOrder()->whereNull('deleted_at')->first(); $count = $journal->attachments()->count(); } while($count !== 0); $this->assertEquals(0, $journal->attachments()->count()); $trigger = HasAttachment::makeFromStrings('1', false); $result = $trigger->triggered($journal); $this->assertFalse($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\HasAttachment::willMatchEverything */ public function testWillMatchEverything(): void { $value = '5'; $result = HasAttachment::willMatchEverything($value); $this->assertFalse($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\HasAttachment::willMatchEverything */ public function testWillMatchEverythingTrue(): void { $value = -1; $result = HasAttachment::willMatchEverything($value); $this->assertTrue($result); } }