2014-10-29 59 views
0

我是liferay的新手,我正在處理我的第一項任務。 我創建了一個方法來檢查給定的角色/權限是否分配給用戶。模擬當前登錄的用戶在liferay中進行單元測試

我想編寫一個測試類來檢查給定角色是否分配給當前登錄用戶? 如何在單元測試中模擬當前登錄的用戶?

在此先感謝

回答

1

這種方法並不總是可行的,因爲你可以是您沒有權限查看角色的一部分。

取而代之,您可以使用RoleLocalServiceUtil及其中的方法檢查角色成員資格,並使用ResourcePermissionLocalServiceUtil來檢查特定資源的權限。


更新 - 爲了嘲笑用戶,你可以使用這個片斷:

PrincipalThreadLocal.setName(user.getUserId()); 
PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user); 
PermissionThreadLocal.setPermissionChecker(permissionChecker); 

同樣,如果用戶試圖檢查他們屬於一個角色,你可能會得到如果他們沒有權限查看該角色,則爲假否定。

+0

謝謝@Ben Vonderhaar。其實我的問題是,有沒有辦法模擬當前登錄用戶而不是硬編碼userId。我已經使用RoleLocalServiceUtil來檢查所需的。 – user3487063 2014-10-29 23:22:32

+0

@ user3487063是的,你可以模擬用戶。答案已更新。我給出我最初的解釋的原因是,在某些情況下,您可能會對您的測試產生錯誤的否定,但可以假裝成另一個用戶。 – 2014-10-30 21:02:30