package org.ovirt.engine.core.bll.aaa;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import org.junit.Before;
import org.junit.Test;
import org.ovirt.engine.core.bll.BaseCommandTest;
import org.ovirt.engine.core.common.action.IdParameters;
import org.ovirt.engine.core.common.errors.EngineMessage;
import org.ovirt.engine.core.compat.Guid;
public class RemoveAdGroupCommandTest extends BaseCommandTest {
/**
* The command under test.
*/
private RemoveGroupCommand<IdParameters> command;
private Guid adElementId = Guid.newGuid();
@Before
public void initializeCommand() {
IdParameters parameters = createParameters();
command = spy(new RemoveGroupCommand<>(parameters, null));
}
/**
* @return Valid parameters for the command.
*/
private IdParameters createParameters() {
return new IdParameters(adElementId);
}
@Test
public void validateFailsOnRemoveLastAdGroupWithSuperUserPrivileges() throws Exception {
mockIsLastSuperUserGroup(true);
assertFalse(command.validate());
assertTrue(command.getReturnValue().getValidationMessages().contains(
EngineMessage.ERROR_CANNOT_REMOVE_LAST_SUPER_USER_ROLE.toString()));
}
@Test
public void validateSucceedsOnRemoveNotLastAdGroupWithSuperUserPrivileges() throws Exception {
mockIsLastSuperUserGroup(false);
assertTrue(command.validate());
}
private void mockIsLastSuperUserGroup(boolean isLast) {
doReturn(isLast).when(command).isLastSuperUserGroup(adElementId);
}
}