|
22 | 22 | import com.cloud.user.AccountVO; |
23 | 23 | import com.cloud.user.User; |
24 | 24 | import com.cloud.user.UserAccount; |
| 25 | +import com.cloud.user.UserAccountVO; |
25 | 26 | import com.cloud.user.UserVO; |
26 | 27 |
|
27 | 28 | import org.apache.cloudstack.acl.APIChecker; |
|
30 | 31 | import org.apache.cloudstack.acl.RoleType; |
31 | 32 | import org.apache.cloudstack.acl.RoleVO; |
32 | 33 | import org.apache.cloudstack.api.response.ApiDiscoveryResponse; |
| 34 | +import org.apache.cloudstack.api.response.ListResponse; |
| 35 | +import org.junit.Assert; |
33 | 36 | import org.junit.Before; |
34 | 37 | import org.junit.Test; |
35 | 38 | import org.junit.runner.RunWith; |
|
40 | 43 | import org.mockito.junit.MockitoJUnitRunner; |
41 | 44 |
|
42 | 45 | import java.util.Arrays; |
| 46 | +import java.util.HashMap; |
43 | 47 | import java.util.List; |
44 | 48 | import java.util.Map; |
45 | 49 |
|
| 50 | +import static org.apache.cloudstack.resourcedetail.UserDetailVO.PasswordChangeRequired; |
| 51 | +import static org.apache.cloudstack.resourcedetail.UserDetailVO.Setup2FADetail; |
46 | 52 | import static org.mockito.ArgumentMatchers.any; |
47 | 53 | import static org.mockito.ArgumentMatchers.anyList; |
48 | 54 | import static org.mockito.ArgumentMatchers.anyLong; |
@@ -138,4 +144,29 @@ public void listApisTestGetsApisAllowedToUserOnUserRole() throws PermissionDenie |
138 | 144 |
|
139 | 145 | Mockito.verify(apiCheckerMock, Mockito.times(1)).getApisAllowedToUser(any(Role.class), any(User.class), anyList()); |
140 | 146 | } |
| 147 | + |
| 148 | + @Test |
| 149 | + public void listApisForUserWithoutEnforcedPwdChange() throws PermissionDeniedException { |
| 150 | + RoleVO userRoleVO = new RoleVO(4L, "name", RoleType.User, "description"); |
| 151 | + Map<String, String> userDetails = new HashMap<>(); |
| 152 | + userDetails.put(Setup2FADetail, UserAccountVO.Setup2FAstatus.ENABLED.name()); |
| 153 | + Mockito.when(mockUserAccount.getDetails()).thenReturn(userDetails); |
| 154 | + Mockito.when(accountServiceMock.getAccount(Mockito.anyLong())).thenReturn(getNormalAccount()); |
| 155 | + Mockito.when(roleServiceMock.findRole(Mockito.anyLong())).thenReturn(userRoleVO); |
| 156 | + discoveryServiceSpy.listApis(getTestUser(), null); |
| 157 | + Mockito.verify(apiCheckerMock, Mockito.times(1)).getApisAllowedToUser(any(Role.class), any(User.class), anyList()); |
| 158 | + } |
| 159 | + |
| 160 | + @Test |
| 161 | + public void listApisForUserEnforcedPwdChange() throws PermissionDeniedException { |
| 162 | + RoleVO userRoleVO = new RoleVO(4L, "name", RoleType.User, "description"); |
| 163 | + Map<String, String> userDetails = new HashMap<>(); |
| 164 | + userDetails.put(PasswordChangeRequired, "true"); |
| 165 | + Mockito.when(mockUserAccount.getDetails()).thenReturn(userDetails); |
| 166 | + Mockito.when(accountServiceMock.getAccount(Mockito.anyLong())).thenReturn(getNormalAccount()); |
| 167 | + Mockito.when(roleServiceMock.findRole(Mockito.anyLong())).thenReturn(userRoleVO); |
| 168 | + Mockito.when(apiNameDiscoveryResponseMapMock.get(Mockito.anyString())).thenReturn(Mockito.mock(ApiDiscoveryResponse.class)); |
| 169 | + ListResponse<ApiDiscoveryResponse> response = (ListResponse<ApiDiscoveryResponse>) discoveryServiceSpy.listApis(getTestUser(), null); |
| 170 | + Assert.assertEquals(5, response.getResponses().size()); |
| 171 | + } |
141 | 172 | } |
0 commit comments