Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests')
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/NonCDOResourceTest.java (renamed from plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java)2
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java96
3 files changed, 98 insertions, 2 deletions
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
index 76551ab535..97a9dc6fd0 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AllTests.java
@@ -28,7 +28,7 @@ public class AllTests
suite.addTestSuite(EnumTest.class);
suite.addTestSuite(StateMachineTest.class);
suite.addTestSuite(ViewTest.class);
- suite.addTestSuite(ResourceTest.class);
+ suite.addTestSuite(NonCDOResourceTest.class);
suite.addTestSuite(ContainmentTest.class);
suite.addTestSuite(InvalidationTest.class);
suite.addTestSuite(RollbackTest.class);
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/NonCDOResourceTest.java
index f63638a920..c9500823c5 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ResourceTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/NonCDOResourceTest.java
@@ -25,7 +25,7 @@ import junit.framework.TestCase;
* @author Simon McDuff
* @author Eike Stepper
*/
-public class ResourceTest extends TestCase
+public class NonCDOResourceTest extends TestCase
{
public void testNonCDOResource() throws Exception
{
diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java
index 54b8d6415c..dfad32f98e 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java
@@ -15,7 +15,15 @@ import org.eclipse.emf.cdo.CDOTransaction;
import org.eclipse.emf.cdo.CDOView;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.protocol.id.CDOID;
+import org.eclipse.emf.cdo.protocol.model.resource.CDOContentsFeature;
+import org.eclipse.emf.cdo.protocol.model.resource.CDOResourcePackage;
+import org.eclipse.emf.cdo.protocol.revision.CDOReferenceProxy;
+import org.eclipse.emf.cdo.protocol.revision.CDORevisionData;
+import org.eclipse.emf.cdo.tests.model1.Company;
+import org.eclipse.emf.cdo.tests.model1.Model1Factory;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
@@ -60,6 +68,94 @@ public class ViewTest extends AbstractCDOTest
session.close();
}
+ public void testUniqueResourceContents() throws Exception
+ {
+ {
+ CDOSession session = openModel1Session();
+ CDOTransaction transaction = session.openTransaction();
+ CDOResource resource = transaction.createResource("/test1");
+ EList<EObject> contents = resource.getContents();
+ for (int i = 0; i < 100; i++)
+ {
+ Company company = Model1Factory.eINSTANCE.createCompany();
+ company.setName("Company " + i);
+ contents.add(company);
+ }
+
+ transaction.commit();
+ session.close();
+ }
+
+ CDOSession session = openModel1Session();
+ session.setReferenceChunkSize(2);
+
+ CDOTransaction transaction = session.openTransaction();
+ transaction.setUniqueResourceContents(true);
+
+ CDOResource resource = transaction.getResource("/test1");
+ EList<EObject> contents = resource.getContents();
+ for (int i = 100; i < 110; i++)
+ {
+ Company company = Model1Factory.eINSTANCE.createCompany();
+ company.setName("Company " + i);
+ contents.add(company);
+ }
+
+ CDORevisionData revision = resource.cdoRevision().getData();
+ CDOResourcePackage resourcePackage = session.getPackageManager().getCDOResourcePackage();
+ CDOContentsFeature contentsFeature = resourcePackage.getCDOResourceClass().getCDOContentsFeature();
+ assertEquals(false, revision.get(contentsFeature, 0) instanceof CDOReferenceProxy);
+ assertEquals(false, revision.get(contentsFeature, 1) instanceof CDOReferenceProxy);
+ assertEquals(false, revision.get(contentsFeature, 2) instanceof CDOReferenceProxy);
+ assertEquals(false, revision.get(contentsFeature, 99) instanceof CDOReferenceProxy);
+ assertEquals(false, revision.get(contentsFeature, 100) instanceof CDOReferenceProxy);
+ session.close();
+ }
+
+ public void testNonUniqueResourceContents() throws Exception
+ {
+ {
+ CDOSession session = openModel1Session();
+ CDOTransaction transaction = session.openTransaction();
+ CDOResource resource = transaction.createResource("/test1");
+ EList<EObject> contents = resource.getContents();
+ for (int i = 0; i < 100; i++)
+ {
+ Company company = Model1Factory.eINSTANCE.createCompany();
+ company.setName("Company " + i);
+ contents.add(company);
+ }
+
+ transaction.commit();
+ session.close();
+ }
+
+ CDOSession session = openModel1Session();
+ session.setReferenceChunkSize(2);
+
+ CDOTransaction transaction = session.openTransaction();
+ transaction.setUniqueResourceContents(false);
+
+ CDOResource resource = transaction.getResource("/test1");
+ EList<EObject> contents = resource.getContents();
+ for (int i = 100; i < 110; i++)
+ {
+ Company company = Model1Factory.eINSTANCE.createCompany();
+ company.setName("Company " + i);
+ contents.add(company);
+ }
+
+ CDORevisionData revision = resource.cdoRevision().getData();
+ CDOResourcePackage resourcePackage = session.getPackageManager().getCDOResourcePackage();
+ CDOContentsFeature contentsFeature = resourcePackage.getCDOResourceClass().getCDOContentsFeature();
+ assertEquals(false, revision.get(contentsFeature, 0) instanceof CDOReferenceProxy);
+ assertEquals(false, revision.get(contentsFeature, 1) instanceof CDOReferenceProxy);
+ assertEquals(true, revision.get(contentsFeature, 2) instanceof CDOReferenceProxy);
+ assertEquals(true, revision.get(contentsFeature, 99) instanceof CDOReferenceProxy);
+ assertEquals(false, revision.get(contentsFeature, 100) instanceof CDOReferenceProxy);
+ session.close();
+ }
+
public void testExternalResourceSet() throws Exception
{
{

Back to the top