### Question:
HibernateUserDAO extends HibernatePersistentObjectDAO<User> implements UserDAO { @Override public User findById(long id) { User user = super.findById(id); if (user != null) initialize(user); return user; } private  HibernateUserDAO(); static boolean ignoreCaseLogin(); @Override boolean delete(long userId, int code); @Override List<User> findByName(String name); @Override User findByUsername(String username); @Override User findByUsernameIgnoreCase(String username); List<User> findByLikeUsername(String username); @Override List<User> findByUsernameAndName(String username, String name); @Override boolean store(User user); @Override boolean store(User user, UserHistory transaction); boolean validateUser(String username, String password); @Override boolean validateUser(String username); int getPasswordTtl(); @Override boolean isPasswordExpired(String username); @Override int count(Long tenantId); @Override int countGuests(Long tenantId); @Override boolean delete(long userId, UserHistory transaction); UserHistoryDAO getUserHistoryDAO(); void setUserHistoryDAO(UserHistoryDAO userHistoryDAO); void setUserListenerManager(UserListenerManager userListenerManager); UserListenerManager getUserListenerManager(); @Override void initialize(User user); @Override Map<String, Generic> findUserSettings(long userId, String namePrefix); void setGenericDAO(GenericDAO genericDAO); @Override User findAdminUser(String tenantName); void setConfig(ContextProperties config); @Override Set<User> findByGroup(long groupId); @Override User findById(long id); @Override User getUser(String username);  }### Answer:
@Test public void testFindById() { User user = dao.findById(1, true); Assert.assertNotNull(user); Assert.assertEquals("admin", user.getUsername()); user.setDecodedPassword("admin"); Assert.assertEquals(CryptUtil.cryptString("admin"), user.getPassword()); Assert.assertEquals("admin@admin.net", user.getEmail()); Assert.assertEquals(2, user.getGroups().size()); user = dao.findById(9999); Assert.assertNull(user); }