blob: 0a45460d36b71a49560b3d7dbed2d990db4ae757 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008-2011 Chair for Applied Software Engineering,
* Technische Universitaet Muenchen.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* emueller
******************************************************************************/
package org.eclipse.emf.emfstore.client.test.common;
import java.util.concurrent.Callable;
import org.eclipse.emf.emfstore.client.ESServer;
import org.eclipse.emf.emfstore.client.ESUsersession;
import org.eclipse.emf.emfstore.client.sessionprovider.ESAbstractSessionProvider;
import org.eclipse.emf.emfstore.client.util.RunESCommand;
import org.eclipse.emf.emfstore.internal.client.model.Usersession;
import org.eclipse.emf.emfstore.internal.client.model.connectionmanager.KeyStoreManager;
import org.eclipse.emf.emfstore.internal.client.model.impl.api.ESUsersessionImpl;
import org.eclipse.emf.emfstore.server.exceptions.ESException;
/**
* A session provider implementation meant to be used by any tests.
*
* @author emueller
*/
public final class TestSessionProvider2 extends ESAbstractSessionProvider {
private static Usersession usersession;
public static final TestSessionProvider2 INSTANCE = new TestSessionProvider2();
/**
* Returns the singleton instance.
*
* @return the singleton instance
*/
public static TestSessionProvider2 getInstance() {
return INSTANCE;
}
/**
* Returns the default {@link Usersession}.
*
* @return the default user session
* @throws ESException if anything else fails
*/
public Usersession getDefaultUsersession() throws ESException {
return RunESCommand.WithException.runWithResult(ESException.class,
new Callable<Usersession>() {
public Usersession call() throws Exception {
usersession.logIn();
return usersession;
}
});
}
public TestSessionProvider2() {
ESUsersessionImpl login;
final ESServer server = ESServer.FACTORY.createServer("localhost", 8080, KeyStoreManager.DEFAULT_CERTIFICATE); //$NON-NLS-1$
try {
login = (ESUsersessionImpl) server.login("super", "super"); //$NON-NLS-1$ //$NON-NLS-2$
usersession = login.toInternalAPI();
} catch (final ESException e) {
throw new RuntimeException(e);
}
}
@Override
public ESUsersession provideUsersession(ESServer serverInfo) throws ESException {
if (!usersession.isLoggedIn()) {
usersession.logIn();
}
return usersession.toAPI();
}
@Override
public ESUsersession login(ESUsersession usersession) throws ESException {
usersession.getServer().login(usersession.getUsername(), usersession.getPassword());
return usersession;
}
}