. */ declare(strict_types=1); namespace Tests\Feature\Controllers\Recurring; use FireflyIII\Factory\CategoryFactory; use FireflyIII\Models\Configuration; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface; use FireflyIII\Repositories\User\UserRepositoryInterface; use Illuminate\Support\Collection; use Log; use Mockery; use Tests\TestCase; /** * * Class IndexControllerTest */ class IndexControllerTest extends TestCase { /** * */ public function setUp(): void { parent::setUp(); Log::info(sprintf('Now in %s.', \get_class($this))); } /** * @covers \FireflyIII\Http\Controllers\Recurring\IndexController */ public function testIndex(): void { $repository = $this->mock(RecurringRepositoryInterface::class); $budgetRepos = $this->mock(BudgetRepositoryInterface::class); $userRepos = $this->mock(UserRepositoryInterface::class); $categoryFactory = $this->mock(CategoryFactory::class); $categoryFactory->shouldReceive('setUser')->atLeast()->once(); $categoryFactory->shouldReceive('findOrCreate')->atLeast()->once()->andReturn(null); $userRepos->shouldReceive('hasRole')->withArgs([Mockery::any(), 'owner'])->atLeast()->once()->andReturn(true); $budgetRepos->shouldReceive('findNull')->withAnyArgs()->andReturn($this->user()->budgets()->first())->atLeast()->once(); $config = new Configuration; $config->data = 0; $falseConfig = new Configuration; $falseConfig->data = false; $collection = $this->user()->recurrences()->take(2)->get(); // mock cron job config: \FireflyConfig::shouldReceive('get')->withArgs(['last_rt_job', 0])->once()->andReturn($config); \FireflyConfig::shouldReceive('get')->withArgs(['is_demo_site', false])->once()->andReturn($falseConfig); $repository->shouldReceive('get')->andReturn($collection)->once(); $repository->shouldReceive('setUser'); $repository->shouldReceive('getNoteText')->andReturn('Notes'); $repository->shouldReceive('repetitionDescription')->andReturn('Bla'); $repository->shouldReceive('getXOccurrences')->andReturn([]); $this->be($this->user()); $response = $this->get(route('recurring.index')); $response->assertStatus(200); $response->assertSee('