### Question:
SqlUserRepository extends UserRepository { @Override public User findById(String userId) { Session session = sessionManager.getSession(); List<SqlUser> users = session.createQuery("select user from " + SqlUser.class.getSimpleName() + " as user where user.userId=:id") .setParameter("id", userId) .list(); if (users.size() == 0) { return null; } else if (users.size() > 1) { throw new LumifyException("more than one user was returned"); } else { return users.get(0); } } @Inject  SqlUserRepository(final Configuration configuration,
                             final HibernateSessionManager sessionManager,
                             final AuthorizationRepository authorizationRepository,
                             final UserListenerUtil userListenerUtil,
                             final Graph graph); @Override User findByUsername(String username); @Override Iterable<User> find(int skip, int limit); @Override Iterable<User> findByStatus(int skip, int limit, UserStatus status); @Override User findById(String userId); @Override User addUser(String username, String displayName, String emailAddress, String password, String[] userAuthorizations); @Override void setPassword(User user, String password); @Override boolean isPasswordValid(User user, String password); @Override void recordLogin(User user, String remoteAddr); @Override User setCurrentWorkspace(String userId, String workspaceId); @Override String getCurrentWorkspaceId(String userId); @Override void setUiPreferences(User user, JSONObject preferences); @Override User setStatus(String userId, UserStatus status); @Override void addAuthorization(User userUser, String auth); @Override void removeAuthorization(User userUser, String auth); @Override org.securegraph.Authorizations getAuthorizations(User user, String... additionalAuthorizations); @Override void setDisplayName(User user, String displayName); @Override void setEmailAddress(User user, String emailAddress); @Override Set<Privilege> getPrivileges(User user); @Override void delete(User user); @Override void setPrivileges(User user, Set<Privilege> privileges); @Override User findByPasswordResetToken(String token); @Override void setPasswordResetTokenAndExpirationDate(User user, String token, Date expirationDate); @Override void clearPasswordResetTokenAndExpirationDate(User user);  }### Answer:
@Test public void testFindById() throws Exception { SqlUser addedUser = (SqlUser) sqlUserRepository.addUser("12345", "test user", null, "&gdja81", new String[0]); SqlUser user = (SqlUser) sqlUserRepository.findById(addedUser.getUserId()); byte[] salt = user.getPasswordSalt(); byte[] passwordHash = UserPasswordUtil.hashPassword("&gdja81", salt); assertTrue(UserPasswordUtil.validatePassword("&gdja81", salt, passwordHash)); assertEquals("12345", user.getUsername()); assertEquals("test user", user.getDisplayName()); assertEquals(user.getUserId(), addedUser.getUserId()); assertEquals(UserStatus.OFFLINE, user.getUserStatus()); assertNull(sqlUserRepository.findById("2")); }