blob: f33db0dd25886044e43e49e593e9d1217af29a5c [file] [log] [blame]
/**
* <copyright> Copyright (c) 2008-2009 Jonas Helming, Maximilian Koegel. 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 </copyright>
*/
package org.eclipse.emf.emfstore.client.test.integration.reversibility;
import static org.junit.Assert.assertTrue;
import org.eclipse.emf.emfstore.client.test.integration.forward.IntegrationTestHelper;
import org.eclipse.emf.emfstore.common.model.util.SerializationException;
import org.eclipse.emf.emfstore.server.exceptions.EmfStoreException;
import org.eclipse.emf.transaction.RecordingCommand;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.junit.Test;
/**
* @author Hodaie
*/
public class CreateDeleteOperationsReversibilityTest extends OperationsReversibilityTest {
private long randomSeed = 1;
/**
* create a random ME and change one of its attributes.
*
* @throws EmfStoreException EmfStoreException
* @throws SerializationException SerializationException
*/
@Test
public void createAndChangeAttributeReversibilityTest() throws SerializationException, EmfStoreException {
System.out.println("CreateAndChangeAttributeReversibilityTest");
final IntegrationTestHelper testHelper = new IntegrationTestHelper(randomSeed, getTestProject());
TransactionalEditingDomain domain = IntegrationTestHelper.getDomain();
domain.getCommandStack().execute(new RecordingCommand(domain) {
@Override
protected void doExecute() {
testHelper.doCreateAndChangeAttribute();
getTestProjectSpace().revert();
}
});
assertTrue(IntegrationTestHelper.areEqual(getTestProject(), getCompareProject(),
"CreateAndChangeAttributeReversibilityTest"));
}
/**
* Create a random ME and change one of its attributes, then changes one of its references, then changes one of its
* attributes, and again changes one of its references.
*
* @throws EmfStoreException EmfStoreException
* @throws SerializationException SerializationException
*/
@Test
public void createAndMultipleChangeReversibilityTest() throws SerializationException, EmfStoreException {
System.out.println("CreateAndMultipleChangeReversibilityTest");
final IntegrationTestHelper testHelper = new IntegrationTestHelper(randomSeed, getTestProject());
TransactionalEditingDomain domain = IntegrationTestHelper.getDomain();
domain.getCommandStack().execute(new RecordingCommand(domain) {
@Override
protected void doExecute() {
testHelper.doCreateAndMultipleChange();
getTestProjectSpace().revert();
}
});
assertTrue(IntegrationTestHelper.areEqual(getTestProject(), getCompareProject(),
"CreateAndMultipleChangeReversibilityTest"));
}
/**
* Create a random ME and change one of its references.
*
* @throws EmfStoreException EmfStoreException
* @throws SerializationException SerializationException
*/
@Test
public void createAndChangeRefReversibilityTest() throws SerializationException, EmfStoreException {
System.out.println("CreateAndChangeRefReversibilityTest");
final IntegrationTestHelper testHelper = new IntegrationTestHelper(randomSeed, getTestProject());
TransactionalEditingDomain domain = IntegrationTestHelper.getDomain();
domain.getCommandStack().execute(new RecordingCommand(domain) {
@Override
protected void doExecute() {
testHelper.doCreateAndChangeRef();
getTestProjectSpace().revert();
}
});
assertTrue(IntegrationTestHelper.areEqual(getTestProject(), getCompareProject(),
"CreateAndChangeRefReversibilityTest"));
}
/**
* Create a random ME. Change one of its non-containment references. Delete ME.
*
* @throws EmfStoreException EmfStoreException
* @throws SerializationException SerializationException
*/
@Test
public void createChangeRefDeleteReversibilityTest() throws SerializationException, EmfStoreException {
System.out.println("CreateChangeRefDeleteReversibilityTest");
final IntegrationTestHelper testHelper = new IntegrationTestHelper(randomSeed, getTestProject());
TransactionalEditingDomain domain = IntegrationTestHelper.getDomain();
domain.getCommandStack().execute(new RecordingCommand(domain) {
@Override
protected void doExecute() {
testHelper.doCreateChangeRefDelete();
getTestProjectSpace().revert();
}
});
assertTrue(IntegrationTestHelper.areEqual(getTestProject(), getCompareProject(),
"CreateChangeRefDeleteReversibilityTest"));
}
/**
* Create a random ME. Delete ME.
*
* @throws EmfStoreException EmfStoreException
* @throws SerializationException SerializationException
*/
@Test
public void createDeleteReversibilityTest() throws SerializationException, EmfStoreException {
System.out.println("CreateDeleteReversibilityTest");
final IntegrationTestHelper testHelper = new IntegrationTestHelper(randomSeed, getTestProject());
TransactionalEditingDomain domain = IntegrationTestHelper.getDomain();
domain.getCommandStack().execute(new RecordingCommand(domain) {
@Override
protected void doExecute() {
testHelper.doCreateDelete();
getTestProjectSpace().revert();
}
});
assertTrue(IntegrationTestHelper.areEqual(getTestProject(), getCompareProject(),
"CreateDeleteReversibilityTest"));
}
/**
* Delete a random ME. Revert delete.
*
* @throws EmfStoreException EmfStoreException
* @throws SerializationException SerializationException
*/
@Test
public void deleteAndRevertDeleteReversibilityTest() throws SerializationException, EmfStoreException {
System.out.println("DeleteAndRevertDeleteReversibilityTest");
final IntegrationTestHelper testHelper = new IntegrationTestHelper(randomSeed, getTestProject());
TransactionalEditingDomain domain = IntegrationTestHelper.getDomain();
domain.getCommandStack().execute(new RecordingCommand(domain) {
@Override
protected void doExecute() {
testHelper.doDeleteAndRevert();
getTestProjectSpace().revert();
}
});
assertTrue(IntegrationTestHelper.areEqual(getTestProject(), getCompareProject(),
"DeleteAndRevertDeleteReversibilityTest"));
}
/**
* Delete a random ME.
*
* @throws EmfStoreException EmfStoreException
* @throws SerializationException SerializationException
*/
@Test
public void deleteReversibilityTest() throws SerializationException, EmfStoreException {
System.out.println("DeleteReversibilityTest");
final IntegrationTestHelper testHelper = new IntegrationTestHelper(randomSeed, getTestProject());
TransactionalEditingDomain domain = IntegrationTestHelper.getDomain();
domain.getCommandStack().execute(new RecordingCommand(domain) {
@Override
protected void doExecute() {
testHelper.doDelete();
getTestProjectSpace().revert();
}
});
assertTrue(IntegrationTestHelper.areEqual(getTestProject(), getCompareProject(), "DeleteReversibilityTest"));
}
}