diff --git a/tests/Unit/TransactionRules/Triggers/FromAccountNumberContainsTest.php b/tests/Unit/TransactionRules/Triggers/FromAccountNumberContainsTest.php index 20147a6652..10c2317ec8 100644 --- a/tests/Unit/TransactionRules/Triggers/FromAccountNumberContainsTest.php +++ b/tests/Unit/TransactionRules/Triggers/FromAccountNumberContainsTest.php @@ -37,7 +37,7 @@ use Tests\TestCase; class FromAccountNumberContainsTest extends TestCase { /** - * @covers \FireflyIII\TransactionRules\Triggers\FromAccountContains + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberContains */ public function testTriggeredBoth(): void { @@ -66,7 +66,7 @@ class FromAccountNumberContainsTest extends TestCase } /** - * @covers \FireflyIII\TransactionRules\Triggers\FromAccountContains + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberContains */ public function testTriggeredIban(): void { @@ -86,7 +86,7 @@ class FromAccountNumberContainsTest extends TestCase } /** - * @covers \FireflyIII\TransactionRules\Triggers\FromAccountContains + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberContains */ public function testTriggeredNot(): void { @@ -97,13 +97,13 @@ class FromAccountNumberContainsTest extends TestCase $account = $this->user()->accounts()->inRandomOrder()->first(); $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); - $trigger = FromAccountContains::makeFromStrings('some name' . random_int(1, 234), false); + $trigger = FromAccountNumberContains::makeFromStrings('some name' . random_int(1, 234), false); $result = $trigger->triggered($journal); $this->assertFalse($result); } /** - * @covers \FireflyIII\TransactionRules\Triggers\FromAccountContains + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberContains */ public function testTriggeredNumber(): void { @@ -127,35 +127,35 @@ class FromAccountNumberContainsTest extends TestCase } /** - * @covers \FireflyIII\TransactionRules\Triggers\FromAccountContains + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberContains */ public function testWillMatchEverythingEmpty(): void { $repository = $this->mock(JournalRepositoryInterface::class); $value = ''; - $result = FromAccountContains::willMatchEverything($value); + $result = FromAccountNumberContains::willMatchEverything($value); $this->assertTrue($result); } /** - * @covers \FireflyIII\TransactionRules\Triggers\FromAccountContains + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberContains */ public function testWillMatchEverythingNotNull(): void { $repository = $this->mock(JournalRepositoryInterface::class); $value = 'x'; - $result = FromAccountContains::willMatchEverything($value); + $result = FromAccountNumberContains::willMatchEverything($value); $this->assertFalse($result); } /** - * @covers \FireflyIII\TransactionRules\Triggers\FromAccountContains + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberContains */ public function testWillMatchEverythingNull(): void { $repository = $this->mock(JournalRepositoryInterface::class); $value = null; - $result = FromAccountContains::willMatchEverything($value); + $result = FromAccountNumberContains::willMatchEverything($value); $this->assertTrue($result); } } diff --git a/tests/Unit/TransactionRules/Triggers/FromAccountNumberEndsTest.php b/tests/Unit/TransactionRules/Triggers/FromAccountNumberEndsTest.php new file mode 100644 index 0000000000..e91652f640 --- /dev/null +++ b/tests/Unit/TransactionRules/Triggers/FromAccountNumberEndsTest.php @@ -0,0 +1,158 @@ +. + */ +declare(strict_types=1); + +namespace Tests\Unit\TransactionRules\Triggers; + +use FireflyIII\Models\AccountMeta; +use FireflyIII\Models\TransactionJournal; +use FireflyIII\Repositories\Journal\JournalRepositoryInterface; +use FireflyIII\TransactionRules\Triggers\FromAccountNumberEnds; +use Tests\TestCase; + +/** + * Class FromAccountNumberEndsTest + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + */ +class FromAccountNumberEndsTest extends TestCase +{ + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberEnds + */ + public function testTriggeredBoth(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + $account->iban = 'FR7620041010053537027625181'; + $account->save(); + $meta = new AccountMeta; + $meta->account_id = $account->id; + $meta->name = 'account_number'; + $meta->data = '7027625181'; + $meta->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + $trigger = FromAccountNumberEnds::makeFromStrings('5181', false); + $result = $trigger->triggered($journal); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberEnds + */ + public function testTriggeredIban(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + $account->iban = 'FR7620041010053537027625181'; + $account->save(); + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + $trigger = FromAccountNumberEnds::makeFromStrings('5181', false); + $result = $trigger->triggered($journal); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberEnds + */ + public function testTriggeredNot(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + $account->iban = 'FR7620041010053537027625181'; + $account->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + $trigger = FromAccountNumberEnds::makeFromStrings('1234', false); + $result = $trigger->triggered($journal); + $this->assertFalse($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberEnds + */ + public function testTriggeredNumber(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + + $meta = new AccountMeta; + $meta->account_id = $account->id; + $meta->name = 'account_number'; + $meta->data = '7027625181'; + $meta->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + $trigger = FromAccountNumberEnds::makeFromStrings('5181', false); + $result = $trigger->triggered($journal); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberEnds + */ + public function testWillMatchEverythingEmpty(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $value = ''; + $result = FromAccountNumberEnds::willMatchEverything($value); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberEnds + */ + public function testWillMatchEverythingNotNull(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $value = 'x'; + $result = FromAccountNumberEnds::willMatchEverything($value); + $this->assertFalse($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberEnds + */ + public function testWillMatchEverythingNull(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $value = null; + $result = FromAccountNumberEnds::willMatchEverything($value); + $this->assertTrue($result); + } +} diff --git a/tests/Unit/TransactionRules/Triggers/FromAccountNumberIsTest.php b/tests/Unit/TransactionRules/Triggers/FromAccountNumberIsTest.php new file mode 100644 index 0000000000..b9790122b3 --- /dev/null +++ b/tests/Unit/TransactionRules/Triggers/FromAccountNumberIsTest.php @@ -0,0 +1,171 @@ +. + */ +declare(strict_types=1); + +namespace Tests\Unit\TransactionRules\Triggers; + +use FireflyIII\Models\AccountMeta; +use FireflyIII\Models\TransactionJournal; +use FireflyIII\Repositories\Journal\JournalRepositoryInterface; +use FireflyIII\TransactionRules\Triggers\FromAccountNumberIs; +use Tests\TestCase; + +/** + * Class FromAccountNumberIsTest + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + */ +class FromAccountNumberIsTest extends TestCase +{ + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberIs + */ + public function testTriggeredBoth(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + $account->iban = 'FR7620041010053537027625181'; + $account->save(); + $meta = new AccountMeta; + $meta->account_id = $account->id; + $meta->name = 'account_number'; + $meta->data = 'FR7620041010053537027625181'; + $meta->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + + $trigger = FromAccountNumberIs::makeFromStrings('FR7620041010053537027625181', false); + $result = $trigger->triggered($journal); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberIs + */ + public function testTriggeredIban(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + $account->iban = 'FR7620041010053537027625181'; + $account->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + + $trigger = FromAccountNumberIs::makeFromStrings('FR7620041010053537027625181', false); + $result = $trigger->triggered($journal); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberIs + */ + public function testTriggeredNumber(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + $meta = new AccountMeta; + $meta->account_id = $account->id; + $meta->name = 'account_number'; + $meta->data = 'FR7620041010053537027625181'; + $meta->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + + $trigger = FromAccountNumberIs::makeFromStrings('FR7620041010053537027625181', false); + $result = $trigger->triggered($journal); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberIs + */ + public function testTriggeredNot(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + $account->iban = 'FR7620041010053537027625181'; + $account->save(); + $meta = new AccountMeta; + $meta->account_id = $account->id; + $meta->name = 'account_number'; + $meta->data = 'FR7620041010053537027625181'; + $meta->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + $trigger = FromAccountNumberIs::makeFromStrings('some name' . random_int(1, 234), false); + $result = $trigger->triggered($journal); + $this->assertFalse($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberIs + */ + public function testWillMatchEverythingEmpty(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $value = ''; + $result = FromAccountNumberIs::willMatchEverything($value); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberIs + */ + public function testWillMatchEverythingNotNull(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $value = 'x'; + $result = FromAccountNumberIs::willMatchEverything($value); + $this->assertFalse($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberIs + */ + public function testWillMatchEverythingNull(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $value = null; + $result = FromAccountNumberIs::willMatchEverything($value); + $this->assertTrue($result); + } +} diff --git a/tests/Unit/TransactionRules/Triggers/FromAccountNumberStartsTest.php b/tests/Unit/TransactionRules/Triggers/FromAccountNumberStartsTest.php new file mode 100644 index 0000000000..837ae3a0b3 --- /dev/null +++ b/tests/Unit/TransactionRules/Triggers/FromAccountNumberStartsTest.php @@ -0,0 +1,186 @@ +. + */ +declare(strict_types=1); + +namespace Tests\Unit\TransactionRules\Triggers; + +use FireflyIII\Models\AccountMeta; +use FireflyIII\Models\TransactionJournal; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; +use FireflyIII\Repositories\Journal\JournalRepositoryInterface; +use FireflyIII\TransactionRules\Triggers\FromAccountNumberStarts; +use Log; +use Tests\TestCase; + +/** + * Class FromAccountNumberStartsTest + * @SuppressWarnings(PHPMD.CouplingBetweenObjects) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) + * @SuppressWarnings(PHPMD.TooManyPublicMethods) + */ +class FromAccountNumberStartsTest extends TestCase +{ + /** + * + */ + public function setUp(): void + { + parent::setUp(); + Log::info(sprintf('Now in %s.', get_class($this))); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberStarts + */ + public function testTriggeredBoth(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $accountRepos = $this->mock(AccountRepositoryInterface::class); + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + $account->iban = 'FR7620041010053537027625181'; + $account->save(); + $meta = new AccountMeta; + $meta->account_id = $account->id; + $meta->name = 'account_number'; + $meta->data = 'FR7620041010053537027625181'; + $meta->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + $trigger = FromAccountNumberStarts::makeFromStrings('FR76', false); + $result = $trigger->triggered($journal); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberStarts + */ + public function testTriggeredIban(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $accountRepos = $this->mock(AccountRepositoryInterface::class); + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + $account->iban = 'FR7620041010053537027625181'; + $account->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + $trigger = FromAccountNumberStarts::makeFromStrings('FR76', false); + $result = $trigger->triggered($journal); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberStarts + */ + public function testTriggeredNot(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $accountRepos = $this->mock(AccountRepositoryInterface::class); + + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + $account->iban = 'FR7620041010053537027625181'; + $account->save(); + $meta = new AccountMeta; + $meta->account_id = $account->id; + $meta->name = 'account_number'; + $meta->data = 'FR7620041010053537027625181'; + $meta->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + $trigger = FromAccountNumberStarts::makeFromStrings('FR76x', false); + $result = $trigger->triggered($journal); + $this->assertFalse($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberStarts + */ + public function testTriggeredNumber(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $accountRepos = $this->mock(AccountRepositoryInterface::class); + /** @var TransactionJournal $journal */ + $journal = $this->user()->transactionJournals()->inRandomOrder()->first(); + $account = $this->user()->accounts()->inRandomOrder()->first(); + + $meta = new AccountMeta; + $meta->account_id = $account->id; + $meta->name = 'account_number'; + $meta->data = 'FR7620041010053537027625181'; + $meta->save(); + + $repository->shouldReceive('getSourceAccount')->once()->andReturn($account); + + $trigger = FromAccountNumberStarts::makeFromStrings('FR76', false); + $result = $trigger->triggered($journal); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberStarts + */ + public function testWillMatchEverythingEmpty(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $accountRepos = $this->mock(AccountRepositoryInterface::class); + + $value = ''; + $result = FromAccountNumberStarts::willMatchEverything($value); + $this->assertTrue($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberStarts + */ + public function testWillMatchEverythingNotNull(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $accountRepos = $this->mock(AccountRepositoryInterface::class); + + $value = 'x'; + $result = FromAccountNumberStarts::willMatchEverything($value); + $this->assertFalse($result); + } + + /** + * @covers \FireflyIII\TransactionRules\Triggers\FromAccountNumberStarts + */ + public function testWillMatchEverythingNull(): void + { + $repository = $this->mock(JournalRepositoryInterface::class); + $accountRepos = $this->mock(AccountRepositoryInterface::class); + + $value = null; + $result = FromAccountNumberStarts::willMatchEverything($value); + $this->assertTrue($result); + } +}