Skip to content

Commit c128b0b

Browse files
committed
add unit tests
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent f23c2e6 commit c128b0b

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

server/src/test/java/com/cloud/user/AccountManagerImplTest.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,12 @@
3939
import org.apache.cloudstack.auth.UserTwoFactorAuthenticator;
4040
import org.apache.cloudstack.context.CallContext;
4141
import org.apache.cloudstack.framework.config.ConfigKey;
42+
import org.apache.cloudstack.resourcedetail.UserDetailVO;
4243
import org.junit.Assert;
4344
import org.junit.Before;
4445
import org.junit.Test;
4546
import org.junit.runner.RunWith;
47+
import org.mockito.ArgumentCaptor;
4648
import org.mockito.InOrder;
4749
import org.mockito.Mock;
4850
import org.mockito.Mockito;
@@ -1218,4 +1220,54 @@ public void checkIfAccountManagesProjectsTestThrowExceptionWhenTheAccountIsAProj
12181220
Mockito.when(_projectAccountDao.listAdministratedProjectIds(accountId)).thenReturn(managedProjectIds);
12191221
accountManagerImpl.checkIfAccountManagesProjects(accountId);
12201222
}
1223+
1224+
@Test
1225+
public void testClearUser2FA_When2FADisabled_NoChanges() {
1226+
UserAccount user = Mockito.mock(UserAccount.class);
1227+
Mockito.when(user.isUser2faEnabled()).thenReturn(false);
1228+
Mockito.when(user.getUser2faProvider()).thenReturn(null);
1229+
UserAccount result = accountManagerImpl.clearUserTwoFactorAuthenticationInSetupStateOnLogin(user);
1230+
Assert.assertSame(user, result);
1231+
Mockito.verifyNoInteractions(userDetailsDaoMock, userAccountDaoMock);
1232+
}
1233+
1234+
@Test
1235+
public void testClearUser2FA_When2FAInVerifiedState_NoChanges() {
1236+
UserAccount user = Mockito.mock(UserAccount.class);
1237+
Mockito.when(user.getId()).thenReturn(1L);
1238+
Mockito.when(user.isUser2faEnabled()).thenReturn(true);
1239+
UserDetailVO userDetail = new UserDetailVO();
1240+
userDetail.setValue(UserAccountVO.Setup2FAstatus.VERIFIED.name());
1241+
Mockito.when(userDetailsDaoMock.findDetail(1L, UserDetailVO.Setup2FADetail)).thenReturn(userDetail);
1242+
UserAccount result = accountManagerImpl.clearUserTwoFactorAuthenticationInSetupStateOnLogin(user);
1243+
Assert.assertSame(user, result);
1244+
Mockito.verify(userDetailsDaoMock).findDetail(1L, UserDetailVO.Setup2FADetail);
1245+
Mockito.verifyNoMoreInteractions(userDetailsDaoMock, userAccountDaoMock);
1246+
}
1247+
1248+
@Test
1249+
public void testClearUser2FA_When2FAInSetupState_Disable2FA() {
1250+
UserAccount user = Mockito.mock(UserAccount.class);
1251+
Mockito.when(user.getId()).thenReturn(1L);
1252+
Mockito.when(user.isUser2faEnabled()).thenReturn(true);
1253+
UserDetailVO userDetail = new UserDetailVO();
1254+
userDetail.setValue(UserAccountVO.Setup2FAstatus.ENABLED.name());
1255+
UserAccountVO userAccountVO = new UserAccountVO();
1256+
userAccountVO.setId(1L);
1257+
Mockito.when(userDetailsDaoMock.findDetail(1L, UserDetailVO.Setup2FADetail)).thenReturn(userDetail);
1258+
Mockito.when(userAccountDaoMock.findById(1L)).thenReturn(userAccountVO);
1259+
UserAccount result = accountManagerImpl.clearUserTwoFactorAuthenticationInSetupStateOnLogin(user);
1260+
Assert.assertNotNull(result);
1261+
Assert.assertFalse(result.isUser2faEnabled());
1262+
Assert.assertNull(result.getUser2faProvider());
1263+
Mockito.verify(userDetailsDaoMock).findDetail(1L, UserDetailVO.Setup2FADetail);
1264+
Mockito.verify(userDetailsDaoMock).remove(Mockito.anyLong());
1265+
Mockito.verify(userAccountDaoMock).findById(1L);
1266+
ArgumentCaptor<UserAccountVO> captor = ArgumentCaptor.forClass(UserAccountVO.class);
1267+
Mockito.verify(userAccountDaoMock).update(Mockito.eq(1L), captor.capture());
1268+
UserAccountVO updatedUser = captor.getValue();
1269+
Assert.assertFalse(updatedUser.isUser2faEnabled());
1270+
Assert.assertNull(updatedUser.getUser2faProvider());
1271+
Assert.assertNull(updatedUser.getKeyFor2fa());
1272+
}
12211273
}

0 commit comments

Comments
 (0)