. */ declare(strict_types=1); namespace Tests\Unit\TransactionRules\Triggers; use DB; use FireflyIII\Models\TransactionJournal; use FireflyIII\TransactionRules\Triggers\HasAttachment; use Tests\TestCase; /** * Class HasAttachmentTest * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @SuppressWarnings(PHPMD.TooManyPublicMethods) */ class HasAttachmentTest extends TestCase { /** * Set up test */ public function setUp(): void { self::markTestIncomplete('Incomplete for refactor.'); return; } /** * @covers \FireflyIII\TransactionRules\Triggers\HasAttachment */ public function testTriggered(): void { $withdrawal = $this->getRandomWithdrawal(); $attachment = $withdrawal->user->attachments()->first(); $withdrawal->attachments()->save($attachment); $this->assertGreaterThanOrEqual(1, $withdrawal->attachments()->count()); $trigger = HasAttachment::makeFromStrings('1', false); $result = $trigger->triggered($withdrawal); $this->assertTrue($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\HasAttachment */ public function testTriggeredFalse(): void { $withdrawal = $this->getRandomWithdrawal(); $attachment = $withdrawal->user->attachments()->first(); $withdrawal->attachments()->save($attachment); DB::table('attachments') ->where('attachable_type', TransactionJournal::class) ->where('attachable_id', $withdrawal->id)->delete(); $withdrawal->attachments()->saveMany([]); $this->assertEquals(0, $withdrawal->attachments()->count()); $trigger = HasAttachment::makeFromStrings('1', false); $result = $trigger->triggered($withdrawal); $this->assertFalse($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\HasAttachment */ public function testWillMatchEverything(): void { $value = '5'; $result = HasAttachment::willMatchEverything($value); $this->assertFalse($result); } /** * @covers \FireflyIII\TransactionRules\Triggers\HasAttachment */ public function testWillMatchEverythingTrue(): void { $value = -1; $result = HasAttachment::willMatchEverything($value); $this->assertTrue($result); } }