### Question:
SqlUserRepository extends UserRepository { @Override public User setCurrentWorkspace(String userId, String workspaceId) { if (userId == null) { throw new LumifyException("UserId cannot be null"); } Session session = sessionManager.getSession(); Transaction transaction = null; SqlUser sqlUser = null; try { transaction = session.beginTransaction(); sqlUser = (SqlUser) findById(userId); if (sqlUser == null) { throw new LumifyException("User does not exist"); } List<SqlWorkspace> workspaces = session.createQuery ("select workspace from " + SqlWorkspace.class.getSimpleName() + " as workspace where workspace.workspaceId=:id") .setParameter("id", workspaceId) .list(); if (workspaces.size() == 0) { throw new LumifyException("Could not find workspace with id: " + workspaceId); } sqlUser.setCurrentWorkspace(workspaces.get(0)); session.merge(sqlUser); transaction.commit(); } catch (HibernateException e) { if (transaction != null) { transaction.rollback(); } throw new LumifyException("HibernateException while setting current workspace", e); } return sqlUser; } @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 testSetCurrentWorkspace() throws Exception { Session session = sessionManager.getSession(); SqlWorkspace sqlWorkspace = new SqlWorkspace(); sqlWorkspace.setWorkspaceId("WORKSPACE_1"); sqlWorkspace.setDisplayTitle("workspace1"); session.save(sqlWorkspace); User user = sqlUserRepository.addUser("123", "abc", null, null, new String[0]); sqlUserRepository.setCurrentWorkspace(user.getUserId(), sqlWorkspace.getWorkspaceId()); SqlUser testUser = (SqlUser) sqlUserRepository.findById(user.getUserId()); assertEquals("workspace1", testUser.getCurrentWorkspace().getDisplayTitle()); }
@Test(expected = LumifyException.class) public void testSetCurrentWorkspaceWithNonExisitingUser() { sqlUserRepository.setCurrentWorkspace("1", new SqlWorkspace().getWorkspaceId()); }