blob: a42db8a977540dc4602d7638d352913238390097 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011-2014 EclipseSource Muenchen GmbH and others.
*
* 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:
* Edgar Mueller - initial API and implementation
******************************************************************************/
package org.eclipse.emf.emfstore.client.test.common.dsl;
import java.util.Date;
import org.eclipse.emf.emfstore.bowling.BowlingFactory;
import org.eclipse.emf.emfstore.bowling.Game;
import org.eclipse.emf.emfstore.bowling.League;
import org.eclipse.emf.emfstore.bowling.Matchup;
import org.eclipse.emf.emfstore.bowling.Player;
import org.eclipse.emf.emfstore.bowling.Tournament;
import org.eclipse.emf.emfstore.bowling.TournamentType;
import org.eclipse.emf.emfstore.client.ESLocalProject;
import org.eclipse.emf.emfstore.client.ESWorkspaceProvider;
import org.eclipse.emf.emfstore.client.test.common.TestSessionProvider2;
import org.eclipse.emf.emfstore.client.test.common.builders.BOOL.TRUE;
import org.eclipse.emf.emfstore.client.test.common.builders.UserBuilder;
import org.eclipse.emf.emfstore.internal.client.model.ESWorkspaceProviderImpl;
import org.eclipse.emf.emfstore.internal.client.model.ServerInfo;
import org.eclipse.emf.emfstore.internal.client.model.Usersession;
import org.eclipse.emf.emfstore.internal.client.model.connectionmanager.AdminConnectionManager;
import org.eclipse.emf.emfstore.internal.client.model.impl.api.ESServerImpl;
import org.eclipse.emf.emfstore.internal.server.exceptions.InvalidInputException;
import org.eclipse.emf.emfstore.internal.server.model.ModelFactory;
import org.eclipse.emf.emfstore.internal.server.model.ProjectId;
import org.eclipse.emf.emfstore.internal.server.model.SessionId;
import org.eclipse.emf.emfstore.internal.server.model.accesscontrol.ACOrgUnitId;
import org.eclipse.emf.emfstore.internal.server.model.versioning.AncestorVersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.BranchVersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.ChangePackage;
import org.eclipse.emf.emfstore.internal.server.model.versioning.DateVersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.LogMessage;
import org.eclipse.emf.emfstore.internal.server.model.versioning.PagedUpdateVersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.PrimaryVersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.TagVersionSpec;
import org.eclipse.emf.emfstore.internal.server.model.versioning.VersioningFactory;
import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.AttributeOperation;
import org.eclipse.emf.emfstore.internal.server.model.versioning.operations.OperationsFactory;
import org.eclipse.emf.emfstore.server.exceptions.ESException;
import org.eclipse.emf.emfstore.server.model.versionspec.ESPrimaryVersionSpec;
import org.eclipse.emf.emfstore.test.model.TestElement;
import org.eclipse.emf.emfstore.test.model.TestType;
import org.eclipse.emf.emfstore.test.model.TestmodelFactory;
// TODO: class returns internal as well as external types
public final class Create {
private static final String TRUNK = "trunk"; //$NON-NLS-1$
private Create() {
// util class
}
public static ESLocalProject project(final String projectName) {
return ESWorkspaceProvider.INSTANCE.getWorkspace().createLocalProject(projectName);
}
public static ACOrgUnitId user(UserBuilder<TRUE, TRUE, TRUE> userBuilder) throws ESException {
try {
final AdminConnectionManager adminConnectionManager = ESWorkspaceProviderImpl.getInstance()
.getAdminConnectionManager();
final SessionId sessionId = TestSessionProvider2.getInstance().getDefaultUsersession().getSessionId();
final ESServerImpl s = ESServerImpl.class.cast(userBuilder.getServer());
adminConnectionManager.initConnection(s.toInternalAPI(), sessionId);
final ACOrgUnitId orgUnitId = adminConnectionManager.createUser(sessionId, userBuilder.getUsername());
// adminConnectionManager.initConnection(s.toInternalAPI(), sessionId);
// adminConnectionManager.changeRole(sessionId, userBuilder.getProjectId(), orgUnitId,
// userBuilder.getRole());
adminConnectionManager.changeUser(sessionId, orgUnitId, userBuilder.getUsername(),
userBuilder.getPassword());
// SetupHelper.setUsersRole(orgUnitId, role, getProjectId());
return orgUnitId;
} catch (final InvalidInputException e) {
throw new RuntimeException(e);
}
}
public static PrimaryVersionSpec primaryVersionSpec(int identifier) {
return primaryVersionSpec(identifier, TRUNK);
}
public static PrimaryVersionSpec primaryVersionSpec(int identifier, String branch) {
final PrimaryVersionSpec primaryVersionSpec = VersioningFactory.eINSTANCE.createPrimaryVersionSpec();
primaryVersionSpec.setIdentifier(identifier);
primaryVersionSpec.setBranch(branch);
return primaryVersionSpec;
}
public static BranchVersionSpec branchVersionSpec() {
return branchVersionSpec(TRUNK);
}
public static BranchVersionSpec branchVersionSpec(String branch) {
final BranchVersionSpec branchVersionSpec = VersioningFactory.eINSTANCE.createBranchVersionSpec();
branchVersionSpec.setBranch(branch);
return branchVersionSpec;
}
public static ProjectId projectId() {
return ModelFactory.eINSTANCE.createProjectId();
}
public static LogMessage logMessage() {
return VersioningFactory.eINSTANCE.createLogMessage();
}
public static ChangePackage changePackage() {
return VersioningFactory.eINSTANCE.createChangePackage();
}
public static AttributeOperation attributeOp() {
return OperationsFactory.eINSTANCE.createAttributeOperation();
}
public static TestElement testElement() {
return TestmodelFactory.eINSTANCE.createTestElement();
}
public static TestType testType() {
return TestmodelFactory.eINSTANCE.createTestType();
}
public static Player player() {
return BowlingFactory.eINSTANCE.createPlayer();
}
public static Player player(String playerName) {
final Player player = BowlingFactory.eINSTANCE.createPlayer();
player.setName(playerName);
return player;
}
public static TestElement testElement(String name) {
final TestElement testElement = TestmodelFactory.eINSTANCE.createTestElement();
testElement.setName(name);
return testElement;
}
public static PagedUpdateVersionSpec pagedUpdateVersionSpec(ESPrimaryVersionSpec baseVersion,
int maxChanges) {
final PagedUpdateVersionSpec pagedUpdateVersionSpec = VersioningFactory.eINSTANCE
.createPagedUpdateVersionSpec();
pagedUpdateVersionSpec.setBaseVersionSpec(
Create.primaryVersionSpec(baseVersion.getIdentifier(), TRUNK));
pagedUpdateVersionSpec.setBranch(TRUNK);
return pagedUpdateVersionSpec;
}
public static Usersession session(ServerInfo server, String username, String password) {
final Usersession usersession = org.eclipse.emf.emfstore.internal.client.model.ModelFactory.eINSTANCE
.createUsersession();
usersession.setServerInfo(server);
usersession.setUsername(username);
usersession.setPassword(password);
return usersession;
}
public static TagVersionSpec tagVersionSpec(String branchName, String tagName) {
final TagVersionSpec tagVersionSpec = VersioningFactory.eINSTANCE.createTagVersionSpec();
tagVersionSpec.setBranch(branchName);
tagVersionSpec.setName(tagName);
return tagVersionSpec;
}
public static AncestorVersionSpec ancestorVersionSpec(PrimaryVersionSpec source, PrimaryVersionSpec target) {
// String targetBranch) {
final AncestorVersionSpec ancestorVersionSpec = VersioningFactory.eINSTANCE.createAncestorVersionSpec();
ancestorVersionSpec.setSource(source);
ancestorVersionSpec.setTarget(target);
// ancestorVersionSpec.setBranch(targetBranch);
return ancestorVersionSpec;
}
public static DateVersionSpec dateVersionSpec(Date date) {
final DateVersionSpec dateVersionSpec = VersioningFactory.eINSTANCE.createDateVersionSpec();
dateVersionSpec.setDate(date);
return dateVersionSpec;
}
public static League league(String name) {
final League league = BowlingFactory.eINSTANCE.createLeague();
league.setName(name);
return league;
}
public static Game game(Player player) {
final Game game = BowlingFactory.eINSTANCE.createGame();
game.setPlayer(player);
return game;
}
public static Tournament tournament(boolean professional) {
final Tournament tournament = BowlingFactory.eINSTANCE.createTournament();
if (professional) {
tournament.setType(TournamentType.PRO);
} else {
tournament.setType(TournamentType.AMATEUR);
}
return tournament;
}
public static Matchup matchup(Game firstGame, Game secondGame) {
final Matchup matchup = BowlingFactory.eINSTANCE.createMatchup();
if (firstGame != null) {
matchup.getGames().add(firstGame);
}
if (secondGame != null) {
matchup.getGames().add(firstGame);
}
return matchup;
}
}