package org.ovirt.engine.core.bll; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import org.ovirt.engine.core.common.action.RoleWithActionGroupsParameters; import org.ovirt.engine.core.common.businessentities.ActionGroup; import org.ovirt.engine.core.common.businessentities.Role; @RunWith(Parameterized.class) public class AddRoleWithActionGroupsCommandTest { /** * The test's parameters: * 1. A list of action groups * 2. Whether or not the role should be inheritable */ @Parameters public static Object[][] data() { return new Object[][] { { false, Collections.emptyList() }, { false, Collections.singletonList(ActionGroup.CREATE_VM) }, { true, Collections.singletonList(ActionGroup.CONFIGURE_ENGINE) }, { true, Arrays.asList(ActionGroup.CONFIGURE_ENGINE, ActionGroup.CREATE_VM) }, }; } private boolean shouldBeInheritable; private RoleWithActionGroupsParameters params; private AddRoleWithActionGroupsCommand<RoleWithActionGroupsParameters> command; public AddRoleWithActionGroupsCommandTest(boolean shouldBeInheritable, List<ActionGroup> groups) { this.shouldBeInheritable = shouldBeInheritable; params = new RoleWithActionGroupsParameters(new Role(), new ArrayList<>(groups)); command = new AddRoleWithActionGroupsCommand<>(params, null); } @Test public void testPrepareRoleForCommandNoGroups() { command.prepareRoleForCommand(); assertEquals("Wrong inheritable state for command", shouldBeInheritable, params.getRole() .allowsViewingChildren()); } }