From 7fa0334aa96f6d2de08f5995feaf97099a869a48 Mon Sep 17 00:00:00 2001 From: Stefan Winkler Date: Wed, 14 Dec 2011 16:34:45 +0100 Subject: [366686] [DB] Reduce amount of update statements for non-audit mode https://bugs.eclipse.org/bugs/show_bug.cgi?id=366686 Enhanced test case to test the non-audit list table handling a bit more--- .../eclipse/emf/cdo/tests/RevisionDeltaTest.java | 132 +++++++++++++++++++++ 1 file changed, 132 insertions(+) (limited to 'plugins') diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaTest.java index 3659cee704..f48e803fb0 100644 --- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaTest.java +++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/RevisionDeltaTest.java @@ -531,6 +531,138 @@ public class RevisionDeltaTest extends AbstractCDOTest }); } + public void testMultipleInserts() + { + testStoreDelta(new ListManipulator() + { + @SuppressWarnings("unchecked") + public void doManipulations(EList list) + { + EList l = (EList)list; + Company company = getModel1Factory().createCompany(); + company.setName("NewEntry 1"); + l.add(7, company); + company = getModel1Factory().createCompany(); + company.setName("NewEntry 2"); + l.add(12, company); + } + }); + } + + public void testInsertAndRemove() + { + testStoreDelta(new ListManipulator() + { + @SuppressWarnings("unchecked") + public void doManipulations(EList list) + { + EList l = (EList)list; + Company company = getModel1Factory().createCompany(); + company.setName("NewEntry 1"); + l.add(7, company); + l.remove(12); + } + }); + } + + public void testInsertAndMove() + { + testStoreDelta(new ListManipulator() + { + @SuppressWarnings("unchecked") + public void doManipulations(EList list) + { + EList l = (EList)list; + Company company = getModel1Factory().createCompany(); + company.setName("NewEntry 1"); + l.add(7, company); + l.move(12, 7); + } + }); + } + + public void testMoveAndDelete() + { + testStoreDelta(new ListManipulator() + { + @SuppressWarnings("unchecked") + public void doManipulations(EList list) + { + EList l = (EList)list; + l.move(12, 7); + l.remove(12); + } + }); + } + + public void testInsertAndMoveAndRemove() + { + testStoreDelta(new ListManipulator() + { + @SuppressWarnings("unchecked") + public void doManipulations(EList list) + { + EList l = (EList)list; + Company company = getModel1Factory().createCompany(); + company.setName("NewEntry 1"); + l.add(7, company); + l.move(12, 7); + l.remove(12); + } + }); + } + + public void testInsertAndSet() + { + testStoreDelta(new ListManipulator() + { + @SuppressWarnings("unchecked") + public void doManipulations(EList list) + { + EList l = (EList)list; + Company company = getModel1Factory().createCompany(); + company.setName("NewEntry 1"); + l.add(7, company); + Company company2 = getModel1Factory().createCompany(); + company2.setName("NewEntry 2"); + l.set(7, company2); + l.add(19, company); // <- needed because the set operation makes the company a dangling reference + } + }); + } + + public void testSetAndRemove() + { + testStoreDelta(new ListManipulator() + { + @SuppressWarnings("unchecked") + public void doManipulations(EList list) + { + EList l = (EList)list; + Company company = getModel1Factory().createCompany(); + company.setName("NewEntry 1"); + Company oldCompany = l.get(7); + l.set(7, company); + l.add(19, oldCompany); + l.remove(7); // <- needed because the set operation makes the company a dangling reference + } + }); + } + + public void testMultipleRemoves() + { + testStoreDelta(new ListManipulator() + { + @SuppressWarnings("unchecked") + public void doManipulations(EList list) + { + EList l = (EList)list; + l.remove(7); + l.remove(12); + } + }); + } + private InternalCDORevision getCopyCDORevision(Object object) { return (InternalCDORevision)CDOUtil.getCDOObject((EObject)object).cdoRevision().copy(); -- cgit v1.2.3