[英]mock currently logged-in user in liferay for a unit test
I'm new to liferay, I'm working on my first task. 我是Liferay的新手,我正在完成第一个任务。 I've created a method to check if a given role/permission is assigned to a user. 我创建了一种方法来检查给定的角色/权限是否分配给用户。
I want to write a test class that checks if the given role is assigned to a current logged-in user? 我想编写一个测试类来检查给定角色是否已分配给当前登录用户? How can I mock a currently logged-in user in a unit test? 如何在单元测试中模拟当前登录的用户?
Thanks in advance 提前致谢
This approach will not always work, because you can be a part of a role that you do not have permission to view. 这种方法并不总是有效,因为您可以成为没有权限查看的角色的一部分。
Instead, you can use RoleLocalServiceUtil
and the methods therein to check role membership, and ResourcePermissionLocalServiceUtil
to check permissions on a particular resource. 相反,您可以使用RoleLocalServiceUtil
及其中的方法检查角色成员资格,并使用ResourcePermissionLocalServiceUtil
检查特定资源的权限。
Update - In order to mock a user, you can use this snippet: 更新-为了模拟用户,您可以使用以下代码段:
PrincipalThreadLocal.setName(user.getUserId());
PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user);
PermissionThreadLocal.setPermissionChecker(permissionChecker);
Again, if the user is trying to check if they belong to a role, you may get an false negative if they do not have permission to view that role. 再次,如果用户试图检查他们是否属于某个角色,则如果他们没有查看该角色的权限,则可能会得到假阴性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.