. */ declare(strict_types=1); namespace tests\Feature\Controllers\Rule; use Carbon\Carbon; use FireflyIII\Jobs\ExecuteRuleOnExistingTransactions; use FireflyIII\Jobs\Job; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\Rule\RuleRepositoryInterface; use FireflyIII\TransactionRules\TransactionMatcher; use Illuminate\Support\Collection; use Log; use Queue; use Tests\TestCase; /** * Class SelectControllerTest */ class SelectControllerTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::debug(sprintf('Now in %s.', \get_class($this))); } /** * @covers \FireflyIII\Http\Controllers\Rule\SelectController */ public function testExecute(): void { $account = $this->user()->accounts()->find(1); $accountRepos = $this->mock(AccountRepositoryInterface::class); $repository = $this->mock(RuleRepositoryInterface::class); $this->session(['first' => new Carbon('2010-01-01')]); $accountRepos->shouldReceive('getAccountsById')->andReturn(new Collection([$account])); Queue::fake(); $data = [ 'accounts' => [1], 'start_date' => '2017-01-01', 'end_date' => '2017-01-02', ]; $this->be($this->user()); $response = $this->post(route('rules.execute', [1]), $data); $response->assertStatus(302); $response->assertSessionHas('success'); Queue::assertPushed( ExecuteRuleOnExistingTransactions::class, function (Job $job) { return $job->getRule()->id === 1; } ); } /** * @covers \FireflyIII\Http\Controllers\Rule\SelectController */ public function testSelectTransactions(): void { $accountRepos = $this->mock(AccountRepositoryInterface::class); $accountRepos->shouldReceive('getAccountsByType')->andReturn(new Collection); $this->be($this->user()); $response = $this->get(route('rules.select-transactions', [1])); $response->assertStatus(200); $response->assertSee('