package org.keycloak.testsuite.console.page.users;
import org.keycloak.representations.idm.RoleRepresentation;
import org.keycloak.testsuite.console.page.roles.RoleCompositeRoles;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.ui.Select;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by fkiss.
*/
public class UserRoleMappingsForm extends RoleCompositeRoles {
@FindBy(id = "realm-composite")
private Select effectiveRolesSelect;
@FindBy(id = "client-composite")
private Select effectiveClientRolesSelect;
public boolean isEffectiveRealmRolesComplete(RoleRepresentation... roles) {
return isEffectiveRolesComplete(effectiveRolesSelect, roles);
}
public boolean isEffectiveClientRolesComplete(RoleRepresentation... roles) {
return isEffectiveRolesComplete(effectiveClientRolesSelect, roles);
}
private boolean isEffectiveRolesComplete(Select select, RoleRepresentation... roles) {
List<String> roleNames = new ArrayList<>();
for (RoleRepresentation role : roles) {
roleNames.add(role.getName());
}
for (WebElement role : select.getOptions()) {
roleNames.contains(role.getText());
roleNames.remove(role.getText());
}
log.info(Arrays.toString(roles));
log.info(roleNames);
return roleNames.isEmpty();
}
}