Coverage Summary for Class: UserDAO (org.kitodo.data.database.persistence)

Class Class, % Method, % Line, %
UserDAO 100% (1/1) 66,7% (6/9) 52,4% (11/21)


 /*
  * (c) Kitodo. Key to digital objects e. V. <contact@kitodo.org>
  *
  * This file is part of the Kitodo project.
  *
  * It is licensed under GNU General Public License version 3 or later.
  *
  * For the full copyright and license information, please read the
  * GPL3-License.txt file that was distributed with this source code.
  */
 
 package org.kitodo.data.database.persistence;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
 import org.kitodo.data.database.beans.User;
 import org.kitodo.data.database.exceptions.DAOException;
 
 public class UserDAO extends BaseDAO<User> {
 
     @Override
     public User getById(Integer userId) throws DAOException {
         User user = retrieveObject(User.class, userId);
         if (user == null) {
             throw new DAOException("Object cannot be found in database");
         }
         return user;
     }
 
     @Override
     public List<User> getAll() {
         return getByQuery("FROM User WHERE deleted = 0");
     }
 
     @Override
     public List<User> getAll(int offset, int size) throws DAOException {
         return retrieveObjects("FROM User WHERE deleted = 0 ORDER BY id ASC", offset, size);
     }
 
     @Override
     public List<User> getAllNotIndexed(int offset, int size) {
         throw new UnsupportedOperationException();
     }
 
     @Override
     public void remove(User user) throws DAOException {
         user.selfDestruct();
         save(user);
     }
 
     @Override
     public void remove(Integer userId) throws DAOException {
         User user = getById(userId);
         user.selfDestruct();
         save(user);
     }
 
     /**
      * Count amount of users with exactly the same login like given but different
      * id.
      *
      * @param id
      *            of user
      * @param login
      *            of user
      * @return list of users
      */
     public Long countUsersWithExactlyTheSameLogin(Integer id, String login) throws DAOException {
         Map<String, Object> parameters = new HashMap<>();
         if (Objects.nonNull(id)) {
             parameters.put("id", id);
             parameters.put("login", login);
             return count("SELECT COUNT(*) FROM User WHERE id != :id AND login = :login",
                     parameters);
         }
 
         parameters.put("login", login);
         return count("SELECT COUNT(*) FROM User WHERE login = :login", parameters);
     }
 
     /**
      * Get all active users sorted by surname and name.
      *
      * @return sorted list of all active users as User objects
      */
     public List<User> getAllActiveUsersSortedByNameAndSurname() {
         return getByQuery("FROM User WHERE active = 1 AND deleted = 0 ORDER BY surname ASC, name ASC");
     }
 }