createMock(AuditLogModel::class); $auditLogRepository = $this->createMock(AuditLogRepository::class); $auditLog = $this->auditLogSetter(1, 'Test User', 'user', 'security', 1, 'login', ['username' => 'testuser']); $auditLogRepository->method('getLogsForUser')->willReturn([$auditLog]); $auditLogModel->method('getRepository')->willReturn($auditLogRepository); $userModel = $this->createMock(UserModel::class); $role = new Role(); $role->setName('Administrator'); $user = $this->userSetter($role); $this->em->persist($auditLog); $this->em->persist($user); $this->em->persist($role); $this->em->flush(); $userModel->method('getEntity')->willReturn($user); $crawler = $this->client->request(Request::METHOD_GET, '/s/users/edit/1'); $clientResponse = $this->client->getResponse(); $this->assertEquals(200, $clientResponse->getStatusCode()); $this->assertStringContainsString('Test User', $clientResponse->getContent()); } /** * @param array $details */ public function auditLogSetter(int $userId, string $userName, string $bundle, string $object, int $objectId, string $action, array $details): AuditLog { $auditLog = new AuditLog(); $auditLog->setUserId($userId); $auditLog->setUserName($userName); $auditLog->setBundle($bundle); $auditLog->setObject($object); $auditLog->setObjectId($objectId); $auditLog->setAction($action); $auditLog->setDetails($details); $auditLog->setDateAdded(new \DateTime()); $auditLog->setIpAddress('127.0.0.1'); return $auditLog; } public function userSetter(Role $role): User { $user = new User(); $user->setUsername('testuser'); $user->setEmail('test@email.com'); $user->setFirstName('Test'); $user->setLastName('User'); $user->setPassword('password'); $user->setRole($role); $user->setLastLogin('2024-02-22 10:30:00'); return $user; } }