diff options
author | Eike Stepper | 2013-04-29 06:37:58 +0000 |
---|---|---|
committer | Eike Stepper | 2013-04-29 06:37:58 +0000 |
commit | f592216a60f85cae1b7f74c9f15f4e17d56e5757 (patch) | |
tree | 5fddd1825024cc10bea199520ec5617e18b4a868 /plugins | |
parent | 6db31b6c3acaf73feb790656422d6fb4e93b89ed (diff) | |
download | cdo-f592216a60f85cae1b7f74c9f15f4e17d56e5757.tar.gz cdo-f592216a60f85cae1b7f74c9f15f4e17d56e5757.tar.xz cdo-f592216a60f85cae1b7f74c9f15f4e17d56e5757.zip |
[396804] CDOMergingConflictResolver tests
https://bugs.eclipse.org/bugs/show_bug.cgi?id=396804
Diffstat (limited to 'plugins')
5 files changed, 66 insertions, 42 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java index f4079adadb..01e6e07cea 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllConfigs.java @@ -18,11 +18,19 @@ import org.eclipse.emf.cdo.tests.config.impl.ConfigTestSuite; import java.util.List; +import junit.framework.Test; +import junit.framework.TestSuite; + /** * @author Eike Stepper */ -public abstract class AllConfigs extends ConfigTestSuite +public class AllConfigs extends ConfigTestSuite { + public static Test suite() + { + return new AllConfigs().getTestSuite(); + } + public List<Class<? extends ConfigTest>> getBugzillaTests() { return getTestClasses(OM.BUNDLE, "org.eclipse.emf.cdo.tests.bugzilla"); @@ -92,6 +100,7 @@ public abstract class AllConfigs extends ConfigTestSuite testClasses.add(FeatureMapTest.class); testClasses.add(AdapterManagerTest.class); testClasses.add(ConflictResolverTest.class); + testClasses.add(ConflictResolverExtendedTest.class); testClasses.add(ConflictResolverMergingTest.class); testClasses.add(DynamicXSDTest.class); testClasses.add(SetFeatureTest.class); @@ -114,4 +123,10 @@ public abstract class AllConfigs extends ConfigTestSuite // Bugzilla verifications testClasses.addAll(getBugzillaTests()); } + + @Override + protected void initConfigSuites(TestSuite parent) + { + addScenario(parent, COMBINED, MEM_BRANCHES, JVM, NATIVE); + } } diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverExtendedTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverExtendedTest.java index 8098f6d076..989290a257 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverExtendedTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ConflictResolverExtendedTest.java @@ -186,7 +186,6 @@ public class ConflictResolverExtendedTest extends AbstractCDOTest addConflictResolver(thatTransaction); Root thisRoot = getTestModelRoot(thisTransaction); - // dumpAllContents(thisRoot); EList<BaseObject> thisList = thisRoot.getListB(); ContainmentObject thisObject = (ContainmentObject)thisList.get(0); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java index 3407d3b58f..b1ff5a47e4 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java @@ -1109,16 +1109,21 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC @Override public String toString() { - EClass eClass = eClass(); - String name = eClass.getName(); + String str = eClass().getName(); CDOID id = cdoID(); - if (id == null) + if (id != null) + { + str += "@" + id; + } + + CDOState cdoState = cdoState(); + if (cdoState != CDOState.CLEAN) { - return name + "?"; //$NON-NLS-1$ + str += "[" + cdoState + "]"; } - return name + "@" + id; //$NON-NLS-1$ + return str; } @Override diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java index 7e397e9c0e..0abec597e0 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOMergingConflictResolver.java @@ -91,7 +91,8 @@ public class CDOMergingConflictResolver extends AbstractChangeSetsConflictResolv } catch (ConflictException ex) { - result = ex.getResult(); + return; + // result = ex.getResult(); } InternalCDOTransaction transaction = (InternalCDOTransaction)getTransaction(); diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/DefaultCDOMerger.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/DefaultCDOMerger.java index 9bf675781a..329d639462 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/DefaultCDOMerger.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/DefaultCDOMerger.java @@ -60,16 +60,6 @@ import java.util.Set; */ public class DefaultCDOMerger implements CDOMerger { - /** - * @since 4.2 - */ - protected static final int SOURCE = 0; - - /** - * @since 4.2 - */ - protected static final int TARGET = 1; - private final ResolutionPreference resolutionPreference; private CDOChangeSetData result; @@ -380,14 +370,6 @@ public class DefaultCDOMerger implements CDOMerger } /** - * @since 4.2 - */ - protected static int other(int side) - { - return TARGET - side; - } - - /** * Enumerates the possible resolution preferences that can be used with a {@link DefaultCDOMerger}. * * @since 4.2 @@ -736,19 +718,17 @@ public class DefaultCDOMerger implements CDOMerger Map<Object, List<Element>> additions = new HashMap<Object, List<Element>>(); Map<CDOFeatureDelta, Element> allElements = new HashMap<CDOFeatureDelta, Element>(); - for (int side = SOURCE; side <= TARGET; side++) - { - applyChangesToWorkList(side, listPerSide, changesPerSide, allElements, additions); - } + applyChangesToWorkList(Side.SOURCE, listPerSide, changesPerSide, allElements, additions); + applyChangesToWorkList(Side.TARGET, listPerSide, changesPerSide, allElements, additions); // Pick changes from source and target sides into the merge result CDOListFeatureDelta result = new CDOListFeatureDeltaImpl(feature, originSize); List<CDOFeatureDelta> resultChanges = result.getListChanges(); - for (int side = SOURCE; side <= TARGET; side++) - { - pickChangesIntoResult(side, feature, ancestorList, changesPerSide, allElements, additions, resultChanges); - } + pickChangesIntoResult(Side.SOURCE, feature, ancestorList, changesPerSide, allElements, additions, + resultChanges); + pickChangesIntoResult(Side.TARGET, feature, ancestorList, changesPerSide, allElements, additions, + resultChanges); // if (!targetChanges.isEmpty() && !sourceChanges.isEmpty()) // { @@ -785,11 +765,11 @@ public class DefaultCDOMerger implements CDOMerger targetList.add(element); } - listPerSide.set(SOURCE, sourceList); - listPerSide.set(TARGET, targetList); + listPerSide.set(Side.SOURCE, sourceList); + listPerSide.set(Side.TARGET, targetList); } - private void applyChangesToWorkList(int side, PerSide<BasicEList<Element>> listPerSide, + private void applyChangesToWorkList(Side side, PerSide<BasicEList<Element>> listPerSide, PerSide<List<CDOFeatureDelta>> changesPerSide, Map<CDOFeatureDelta, Element> allElements, Map<Object, List<Element>> additions) { @@ -849,6 +829,8 @@ public class DefaultCDOMerger implements CDOMerger case CLEAR: case UNSET: + int removeme; + System.out.println(); default: throw new IllegalStateException("Illegal change type: " + changeType); @@ -868,7 +850,7 @@ public class DefaultCDOMerger implements CDOMerger additionsList.add(element); } - private void pickChangesIntoResult(int side, EStructuralFeature feature, BasicEList<Element> ancestorList, + private void pickChangesIntoResult(Side side, EStructuralFeature feature, BasicEList<Element> ancestorList, PerSide<List<CDOFeatureDelta>> changesPerSide, Map<CDOFeatureDelta, Element> allElements, Map<Object, List<Element>> additions, List<CDOFeatureDelta> result) { @@ -1112,6 +1094,28 @@ public class DefaultCDOMerger implements CDOMerger } /** + * @since 4.2 + */ + protected static Side other(Side side) + { + if (side == Side.SOURCE) + { + return Side.TARGET; + } + + return Side.SOURCE; + } + + /** + * @author Eike Stepper + * @since 4.2 + */ + public static enum Side + { + SOURCE, TARGET + } + + /** * Holds data for the source and target sides. * * @author Eike Stepper @@ -1133,9 +1137,9 @@ public class DefaultCDOMerger implements CDOMerger this.target = target; } - public final T get(int side) + public final T get(Side side) { - if (side == SOURCE) + if (side == Side.SOURCE) { return source; } @@ -1143,9 +1147,9 @@ public class DefaultCDOMerger implements CDOMerger return target; } - public final void set(int side, T value) + public final void set(Side side, T value) { - if (side == SOURCE) + if (side == Side.SOURCE) { this.source = value; } |