package org.ovirt.engine.core.itests;
import java.util.ArrayList;
import java.util.Random;
import junit.framework.Assert;
import org.junit.Ignore;
import org.junit.Test;
import org.ovirt.engine.core.common.action.AddUserParameters;
import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.businessentities.AdUser;
import org.ovirt.engine.core.common.businessentities.ad_groups;
import org.ovirt.engine.core.common.interfaces.SearchType;
import org.ovirt.engine.core.common.queries.SearchParameters;
import org.ovirt.engine.core.common.queries.VdcQueryType;
import org.ovirt.engine.core.common.users.VdcUser;
/**
* Test class for various user scenarios
*
* @see {@link AddUserCommand} , {@link ad_groups} , {@link DbUser}
*/
@Ignore
public class UserTest extends AbstractBackendTest {
@Test
public void prepare() {
runAsSuperAdmin();
}
/**
* AddUserCommand test. Steps: - get a random user from active directory - fire the addUserCommand
*
* result - success if command getSucceded() return true
*/
@Test
public void addUser() {
SearchParameters p = new SearchParameters(String.format("ADUSER@%s: allnames=t*", getUser()
.getDomainControler()), SearchType.AdUser);
p.setMaxCount(10);
ArrayList<AdUser> users = (ArrayList<AdUser>) backend.runInternalQuery(VdcQueryType.Search, p).getReturnValue();
AdUser newUser = users.get(new Random().nextInt(users.size()));
AddUserParameters parameters = new AddUserParameters();
parameters.setVdcUser(new VdcUser(newUser));
Assert.assertTrue(backend.RunAction(VdcActionType.AddUser, parameters).getSucceeded());
}
/**
* AddUserCommand test of type ad_groups (Active directory holds users and groups) Steps: - get a random group from
* active directory - fire the addUserCommand
*
* result - success if command getSucceded() return true
*/
@Test
public void addGroup() {
SearchParameters p = new SearchParameters(String.format("ADGROUP@%s : name=C*", getUser()
.getDomainControler()), SearchType.AdGroup);
p.setMaxCount(10);
ArrayList<ad_groups> users =
(ArrayList<ad_groups>) backend.runInternalQuery(VdcQueryType.Search, p).getReturnValue();
ad_groups newGroup = users.get(new Random().nextInt(users.size()));
AddUserParameters parameters = new AddUserParameters();
parameters.setAdGroup(new ad_groups(newGroup.getid(), newGroup.getname(), newGroup.getdomain(),newGroup.getDistinguishedName()));
Assert.assertTrue(backend.RunAction(VdcActionType.AddUser, parameters).getSucceeded());
}
}