assertUrlIsSecured('/reporting/customer/monthly_projects/view'); } public function testExportReportIsSecure(): void { $this->assertUrlIsSecured('/reporting/customer/monthly_projects/export'); } private function prepareReport(): HttpKernelBrowser { $client = $this->getClientForAuthenticatedUser(User::ROLE_ADMIN); $customers = new CustomerFixtures(); $customers->setIsVisible(true); $customers->setAmount(1); $customers = $this->importFixture($customers); $projects = new ProjectFixtures(); $projects->setCustomers($customers); $projects->setAmount(2); $projects->setIsVisible(true); $projects->setCallback(function (Project $project): void { $project->setIsMonthlyBudget(); }); $this->importFixture($projects); $activities = new ActivityFixtures(); $activities->setAmount(5); $activities->setIsGlobal(true); $activities = $this->importFixture($activities); $timesheets = new TimesheetFixtures(); $timesheets->setAmount(10); $timesheets->setActivities($activities); $timesheets->setStartDate(new \DateTime('first day of this month')); $timesheets->setUser($this->getUserByRole(User::ROLE_TEAMLEAD)); $this->importFixture($timesheets); $timesheets = new TimesheetFixtures(); $timesheets->setAmount(10); $timesheets->setActivities($activities); $timesheets->setStartDate(new \DateTime('first day of last month')); $timesheets->setUser($this->getUserByRole(User::ROLE_TEAMLEAD)); $this->importFixture($timesheets); return $client; } public function testReport(): void { $client = $this->prepareReport(); $this->assertAccessIsGranted($client, '/reporting/customer/monthly_projects/view'); self::assertStringContainsString('