request('POST', '/api/mail/messages/1/link-task', [], [], ['CONTENT_TYPE' => 'application/json'], json_encode(['taskId' => 1])); self::assertResponseStatusCodeSame(401); } public function testLinkTaskReturns403ForRoleClient(): void { $client = static::createClient(); $container = static::getContainer(); $em = $container->get('doctrine.orm.entity_manager'); $clientUser = $em->getRepository(User::class)->findOneBy(['username' => 'client-liot']); $client->loginUser($clientUser); $client->request('POST', '/api/mail/messages/1/link-task', [], [], ['CONTENT_TYPE' => 'application/json'], json_encode(['taskId' => 1])); self::assertResponseStatusCodeSame(403); } public function testUnlinkTaskReturns401WhenNotAuthenticated(): void { $client = static::createClient(); $client->request('DELETE', '/api/mail/messages/1/link-task/1'); self::assertResponseStatusCodeSame(401); } public function testTaskMailsListReturns401WhenNotAuthenticated(): void { $client = static::createClient(); $client->request('GET', '/api/tasks/1/mails'); self::assertResponseStatusCodeSame(401); } public function testTaskMailsListReturns403ForRoleClient(): void { $client = static::createClient(); $container = static::getContainer(); $em = $container->get('doctrine.orm.entity_manager'); $clientUser = $em->getRepository(User::class)->findOneBy(['username' => 'client-liot']); $client->loginUser($clientUser); $client->request('GET', '/api/tasks/1/mails'); self::assertResponseStatusCodeSame(403); } public function testCreateTaskReturns401WhenNotAuthenticated(): void { $client = static::createClient(); $client->request('POST', '/api/mail/messages/1/create-task', [], [], ['CONTENT_TYPE' => 'application/json'], json_encode(['projectId' => 1])); self::assertResponseStatusCodeSame(401); } }