package org.eclipse.emf.emfstore.client.test.server;
import org.eclipse.emf.emfstore.client.model.ServerInfo;
import org.eclipse.emf.emfstore.client.model.Usersession;
import org.eclipse.emf.emfstore.client.model.Workspace;
import org.eclipse.emf.emfstore.client.model.WorkspaceManager;
import org.eclipse.emf.emfstore.client.model.connectionmanager.AbstractSessionProvider;
import org.eclipse.emf.emfstore.client.model.util.EMFStoreCommand;
import org.eclipse.emf.emfstore.client.test.SetupHelper;
import org.eclipse.emf.emfstore.server.exceptions.AccessControlException;
import org.eclipse.emf.emfstore.server.exceptions.EmfStoreException;
import org.junit.Assert;
public class TestSessionProvider extends AbstractSessionProvider {
private static Usersession usersession;
private static TestSessionProvider instance;
public static TestSessionProvider getInstance() {
if (instance == null) {
instance = new TestSessionProvider();
}
return instance;
}
public Usersession getDefaultUsersession() throws AccessControlException, EmfStoreException {
new EMFStoreCommand() {
@Override
protected void doRun() {
try {
usersession.logIn();
} catch (AccessControlException e) {
Assert.fail();
} catch (EmfStoreException e) {
Assert.fail();
}
}
}.run(false);
return usersession;
}
private TestSessionProvider() {
final Workspace workspace = WorkspaceManager.getInstance().getCurrentWorkspace();
usersession = org.eclipse.emf.emfstore.client.model.ModelFactory.eINSTANCE.createUsersession();
usersession.setServerInfo(SetupHelper.getServerInfo());
usersession.setUsername("super");
usersession.setPassword("super");
new EMFStoreCommand() {
@Override
protected void doRun() {
workspace.getUsersessions().add(usersession);
}
}.run(false);
workspace.save();
}
@Override
public Usersession provideUsersession(ServerInfo serverInfo) throws EmfStoreException {
return usersession;
}
@Override
public void login(Usersession usersession) throws EmfStoreException {
usersession.logIn();
}
}