UserServiceImpl implements UserService { @Override public Collection<User> getByAttribute(UserAttribute attribute) { Search searchCriteria = new Search(UserAttribute.class); searchCriteria.addFilterEqual("name", attribute.getName()); searchCriteria.addFilterEqual("value", attribute.getValue()); searchCriteria.addFetch("user"); List<UserAttribute> attributes = userAttributeDAO.search(searchCriteria); Set<User> users = new HashSet<User>(); for(UserAttribute userAttr : attributes) { if(userAttr.getUser() != null) { users.add(userAttr.getUser()); } } return users; }  void setUserGroupDAO(UserGroupDAO userGroupDAO); void setUserAttributeDAO(UserAttributeDAO userAttributeDAO); void setUserDAO(UserDAO userDAO); @Override long insert(User user); @Override long update(User user); @Override void updateAttributes(long id, List<UserAttribute> attributes); @Override User get(long id); @Override User get(String name); @Override boolean delete(long id); @Override List<User> getAll(Integer page, Integer entries); @Override List<User> getAll(Integer page, Integer entries, String nameLike,
            boolean includeAttributes); @Override long getCount(String nameLike); @Override boolean insertSpecialUsers(); @Override Collection<User> getByAttribute(UserAttribute attribute); @Override Collection<User> getByGroup(UserGroup group);  }
@Test public void testGetByAttribute() throws Exception { UserAttribute attribute = new UserAttribute(); String token = UUID.randomUUID().toString(); attribute.setName("UUID"); attribute.setValue(token); createUser("test", Role.USER, "tesPW", Arrays.asList(attribute)); assertEquals(1, userService.getByAttribute(attribute).size()); }