package edu.harvard.iq.dataverse.mocks;
import edu.harvard.iq.dataverse.RoleAssigneeServiceBean;
import edu.harvard.iq.dataverse.authorization.RoleAssignee;
import java.util.HashMap;
import java.util.Map;
/**
*
* @author michael
*/
public class MockRoleAssigneeServiceBean extends RoleAssigneeServiceBean {
Map<String, RoleAssignee> assignees = new HashMap<>();
public <T extends RoleAssignee> T add (T ra ) {
assignees.put(ra.getIdentifier(), ra);
return ra;
}
@Override
public RoleAssignee getRoleAssignee(String identifier) {
if ( predefinedRoleAssignees.isEmpty() ) {
setup();
}
if (identifier == null || identifier.isEmpty()) {
throw new IllegalArgumentException("Identifier cannot be null or empty string.");
}
switch (identifier.charAt(0)) {
case ':':
return predefinedRoleAssignees.get(identifier);
case '@':
return assignees.get(identifier);
case '&':
return assignees.get(identifier);
case '#':
throw new IllegalArgumentException("private url users not supported in test - it might be easy to add, though.");
default:
throw new IllegalArgumentException("Unsupported assignee identifier '" + identifier + "'");
}
}
}