#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
/* vim: set ts=2 et sw=2 cindent fo=qroca: */
package ${package}.web.testsupport;
import org.apache.commons.lang.Validate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.globant.katari.hibernate.coreuser.domain.Role;
import com.globant.katari.hibernate.coreuser.domain.RoleRepository;
import com.globant.katari.user.domain.User;
import com.globant.katari.user.domain.UserRepository;
import com.globant.katari.user.domain.UserFilter;
/** Utility class to help in the setup of test cases that need to interact with
* the database.
*/
public final class DataHelper {
/** A logger.
*/
private static Logger log = LoggerFactory.getLogger(DataHelper.class);
/** A private constructor so no instances are created.
*/
private DataHelper() {
}
/** Removes the extra users created by tests.
*
* It removes users with names that do not start with 'base-'. It also keeps
* the administrator.
*
* @param repository The user repository. It cannot be null.
*/
public static void removeExtraUsers(final UserRepository repository) {
Validate.notNull(repository, "The user repository cannot be null");
// Removes the unneeded users.
for (User user : repository.getUsers(new UserFilter())) {
log.debug("Found user " + user.getName());
boolean canDelete = !user.getName().equals("admin");
canDelete = canDelete & !user.getName().startsWith("base-");
if (canDelete) {
repository.remove(user);
}
}
}
/** Removes the extra roles created by tests.
*
* It removes roles with names that do not start with 'base-'. It also keeps
* the administrator role.
*
* @param repository The user repository. It cannot be null.
*/
public static void removeExtraRoles(final RoleRepository repository) {
Validate.notNull(repository, "The user repository cannot be null");
// Removes the unneeded users.
for (Role role : repository.getRoles()) {
log.debug("Found role " + role.getName());
boolean canDelete = !role.getName().equals("ADMINISTRATOR");
canDelete = canDelete & !role.getName().startsWith("base-");
if (canDelete) {
repository.remove(role);
}
}
}
}