diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/ViewTest.java | 622 |
1 files changed, 311 insertions, 311 deletions
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 c811899f1a..62d471caaa 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 @@ -1,311 +1,311 @@ -/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.tests;
-
-import org.eclipse.emf.cdo.common.revision.CDOElementProxy;
-import org.eclipse.emf.cdo.common.revision.CDORevisionData;
-import org.eclipse.emf.cdo.eresource.CDOResource;
-import org.eclipse.emf.cdo.eresource.EresourcePackage;
-import org.eclipse.emf.cdo.session.CDOSession;
-import org.eclipse.emf.cdo.tests.model1.Company;
-import org.eclipse.emf.cdo.transaction.CDOTransaction;
-import org.eclipse.emf.cdo.util.CDOUtil;
-import org.eclipse.emf.cdo.view.CDOView;
-
-import org.eclipse.net4j.util.lifecycle.ILifecycle;
-import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
-import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
-import org.eclipse.net4j.util.ref.ReferenceType;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-
-/**
- * @author Eike Stepper
- */
-public class ViewTest extends AbstractCDOTest
-{
- public void testDeactivateWithSession() throws Exception
- {
- CDOSession session = openSession();
- assertEquals(true, LifecycleUtil.isActive(session));
- assertEquals(false, session.isClosed());
-
- CDOView view = session.openView();
- assertEquals(true, LifecycleUtil.isActive(view));
- assertEquals(false, view.isClosed());
-
- session.close();
- assertEquals(false, LifecycleUtil.isActive(session));
- assertEquals(true, session.isClosed());
-
- assertEquals(false, LifecycleUtil.isActive(view));
- assertEquals(true, view.isClosed());
- }
-
- public void testHasResource() throws Exception
- {
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- transaction.createResource(getResourcePath("/test1"));
- transaction.commit();
- session.close();
- }
-
- CDOSession session = openSession();
- CDOView view = session.openView();
- assertEquals(true, view.hasResource(getResourcePath("/test1")));
- assertEquals(false, view.hasResource(getResourcePath("/test2")));
- session.close();
- }
-
- public void testIsObjectRegisteredWithNull() throws Exception
- {
- CDOSession session = openSession();
- CDOView view = session.openView();
- assertEquals(false, view.isObjectRegistered(null));
- session.close();
- }
-
- public void testGetOrCreateResource() throws Exception
- {
- String id;
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/test1"));
- transaction.commit();
- id = resource.cdoID().toString();
- session.close();
- }
-
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- assertEquals(id, transaction.getOrCreateResource(getResourcePath("/test1")).cdoID().toString());
- assertNotSame(id, transaction.getOrCreateResource(getResourcePath("/test2")).cdoID().toString());
- session.close();
- }
-
- public void testUniqueResourceContents() throws Exception
- {
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/test1"));
- EList<EObject> contents = resource.getContents();
- for (int i = 0; i < 100; i++)
- {
- Company company = getModel1Factory().createCompany();
- company.setName("Company " + i);
- contents.add(company);
- }
-
- transaction.commit();
- session.close();
- }
-
- CDOSession session = openSession();
- session.options().setCollectionLoadingPolicy(CDOUtil.createCollectionLoadingPolicy(2, 2));
-
- CDOTransaction transaction = session.openTransaction();
-
- CDOResource resource = transaction.getResource(getResourcePath("/test1"));
- EList<EObject> contents = resource.getContents();
- for (int i = 100; i < 110; i++)
- {
- Company company = getModel1Factory().createCompany();
- company.setName("Company " + i);
- contents.add(company);
- }
-
- CDORevisionData revision = resource.cdoRevision().data();
- EStructuralFeature contentsFeature = EresourcePackage.eINSTANCE.getCDOResource_Contents();
- assertEquals(true, revision.get(contentsFeature, 99) instanceof CDOElementProxy);
- assertEquals(false, revision.get(contentsFeature, 100) instanceof CDOElementProxy);
- session.close();
- }
-
- public void testNonUniqueResourceContents() throws Exception
- {
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/test1"));
- EList<EObject> contents = resource.getContents();
- for (int i = 0; i < 100; i++)
- {
- Company company = getModel1Factory().createCompany();
- company.setName("Company " + i);
- contents.add(company);
- }
-
- transaction.commit();
- session.close();
- }
-
- CDOSession session = openSession();
- session.options().setCollectionLoadingPolicy(CDOUtil.createCollectionLoadingPolicy(2, 2));
-
- CDOTransaction transaction = session.openTransaction();
-
- CDOResource resource = transaction.getResource(getResourcePath("/test1"));
- EList<EObject> contents = resource.getContents();
- for (int i = 100; i < 110; i++)
- {
- Company company = getModel1Factory().createCompany();
- company.setName("Company " + i);
- contents.add(company);
- }
-
- CDORevisionData revision = resource.cdoRevision().data();
- EStructuralFeature contentsFeature = EresourcePackage.eINSTANCE.getCDOResource_Contents();
- assertEquals(false, revision.get(contentsFeature, 0) instanceof CDOElementProxy);
- assertEquals(false, revision.get(contentsFeature, 1) instanceof CDOElementProxy);
- assertEquals(true, revision.get(contentsFeature, 2) instanceof CDOElementProxy);
- assertEquals(true, revision.get(contentsFeature, 99) instanceof CDOElementProxy);
- assertEquals(false, revision.get(contentsFeature, 100) instanceof CDOElementProxy);
- session.close();
- }
-
- public void testExternalResourceSet() throws Exception
- {
- {
- ResourceSet resourceSet = new ResourceSetImpl();
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction(resourceSet);
- transaction.createResource(getResourcePath("/test1"));
- transaction.commit();
- session.close();
- }
-
- CDOSession session = openSession();
- CDOView view = session.openView();
- assertEquals(true, view.hasResource(getResourcePath("/test1")));
- assertEquals(false, view.hasResource(getResourcePath("/test2")));
- session.close();
- }
-
- public void testContextify() throws Exception
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/test1"));
- transaction.commit();
-
- CDOView view = session.openView();
- CDOResource resource2 = view.getObject(resource);
- assertEquals(getResourcePath("/test1"), resource2.getPath());
- session.close();
- }
-
- @CleanRepositoriesBefore
- public void testContextifyDifferentRepository() throws Exception
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/test1"));
- transaction.commit();
-
- getRepository("repo2");
- CDOSession session2 = openSession("repo2");
- CDOView view = session2.openView();
-
- try
- {
- view.getObject(resource);
- fail("IllegalArgumentException expected");
- }
- catch (IllegalArgumentException success)
- {
- }
- finally
- {
- session.close();
- session2.close();
- }
- }
-
- public void testContextifySameRepository() throws Exception
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- CDOResource resource = transaction.createResource(getResourcePath("/test1"));
- transaction.commit();
-
- CDOSession session2 = openSession();
- CDOView view = session2.openView();
-
- CDOResource object = view.getObject(resource);
- assertNotSame(resource, object);
- assertEquals(resource.cdoID(), object.cdoID());
-
- session.close();
- session2.close();
- }
-
- public void testCacheReferences() throws Exception
- {
- CDOSession session = openSession();
- CDOTransaction transaction = session.openTransaction();
- transaction.createResource(getResourcePath("/my/test1"));
- transaction.commit();
-
- transaction.createResource(getResourcePath("/my/test2"));
- transaction.createResource(getResourcePath("/my/test3"));
- transaction.createResource(getResourcePath("/my/test4"));
- transaction.createResource(getResourcePath("/my/test5"));
-
- boolean done;
- done = transaction.options().setCacheReferenceType(ReferenceType.SOFT);
- assertEquals(false, done);
-
- done = transaction.options().setCacheReferenceType(null);
- assertEquals(false, done);
-
- done = transaction.options().setCacheReferenceType(ReferenceType.STRONG);
- assertEquals(true, done);
-
- done = transaction.options().setCacheReferenceType(ReferenceType.SOFT);
- assertEquals(true, done);
-
- done = transaction.options().setCacheReferenceType(ReferenceType.WEAK);
- assertEquals(true, done);
-
- done = transaction.options().setCacheReferenceType(null);
- assertEquals(true, done);
-
- session.close();
- }
-
- public void testViewNotifiesDeactivation()
- {
- CDOSession session = openSession();
- CDOView view = session.openView();
-
- final boolean[] deactivated = { false };
- view.addListener(new LifecycleEventAdapter()
- {
- @Override
- protected void onDeactivated(ILifecycle lifecycle)
- {
- deactivated[0] = true;
- }
- });
-
- view.close();
- assertEquals(true, deactivated[0]);
- session.close();
- }
-}
+/* + * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) 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: + * Eike Stepper - initial API and implementation + */ +package org.eclipse.emf.cdo.tests; + +import org.eclipse.emf.cdo.common.revision.CDOElementProxy; +import org.eclipse.emf.cdo.common.revision.CDORevisionData; +import org.eclipse.emf.cdo.eresource.CDOResource; +import org.eclipse.emf.cdo.eresource.EresourcePackage; +import org.eclipse.emf.cdo.session.CDOSession; +import org.eclipse.emf.cdo.tests.model1.Company; +import org.eclipse.emf.cdo.transaction.CDOTransaction; +import org.eclipse.emf.cdo.util.CDOUtil; +import org.eclipse.emf.cdo.view.CDOView; + +import org.eclipse.net4j.util.lifecycle.ILifecycle; +import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter; +import org.eclipse.net4j.util.lifecycle.LifecycleUtil; +import org.eclipse.net4j.util.ref.ReferenceType; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; + +/** + * @author Eike Stepper + */ +public class ViewTest extends AbstractCDOTest +{ + public void testDeactivateWithSession() throws Exception + { + CDOSession session = openSession(); + assertEquals(true, LifecycleUtil.isActive(session)); + assertEquals(false, session.isClosed()); + + CDOView view = session.openView(); + assertEquals(true, LifecycleUtil.isActive(view)); + assertEquals(false, view.isClosed()); + + session.close(); + assertEquals(false, LifecycleUtil.isActive(session)); + assertEquals(true, session.isClosed()); + + assertEquals(false, LifecycleUtil.isActive(view)); + assertEquals(true, view.isClosed()); + } + + public void testHasResource() throws Exception + { + { + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + transaction.createResource(getResourcePath("/test1")); + transaction.commit(); + session.close(); + } + + CDOSession session = openSession(); + CDOView view = session.openView(); + assertEquals(true, view.hasResource(getResourcePath("/test1"))); + assertEquals(false, view.hasResource(getResourcePath("/test2"))); + session.close(); + } + + public void testIsObjectRegisteredWithNull() throws Exception + { + CDOSession session = openSession(); + CDOView view = session.openView(); + assertEquals(false, view.isObjectRegistered(null)); + session.close(); + } + + public void testGetOrCreateResource() throws Exception + { + String id; + { + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.createResource(getResourcePath("/test1")); + transaction.commit(); + id = resource.cdoID().toString(); + session.close(); + } + + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + assertEquals(id, transaction.getOrCreateResource(getResourcePath("/test1")).cdoID().toString()); + assertNotSame(id, transaction.getOrCreateResource(getResourcePath("/test2")).cdoID().toString()); + session.close(); + } + + public void testUniqueResourceContents() throws Exception + { + { + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.createResource(getResourcePath("/test1")); + EList<EObject> contents = resource.getContents(); + for (int i = 0; i < 100; i++) + { + Company company = getModel1Factory().createCompany(); + company.setName("Company " + i); + contents.add(company); + } + + transaction.commit(); + session.close(); + } + + CDOSession session = openSession(); + session.options().setCollectionLoadingPolicy(CDOUtil.createCollectionLoadingPolicy(2, 2)); + + CDOTransaction transaction = session.openTransaction(); + + CDOResource resource = transaction.getResource(getResourcePath("/test1")); + EList<EObject> contents = resource.getContents(); + for (int i = 100; i < 110; i++) + { + Company company = getModel1Factory().createCompany(); + company.setName("Company " + i); + contents.add(company); + } + + CDORevisionData revision = resource.cdoRevision().data(); + EStructuralFeature contentsFeature = EresourcePackage.eINSTANCE.getCDOResource_Contents(); + assertEquals(true, revision.get(contentsFeature, 99) instanceof CDOElementProxy); + assertEquals(false, revision.get(contentsFeature, 100) instanceof CDOElementProxy); + session.close(); + } + + public void testNonUniqueResourceContents() throws Exception + { + { + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.createResource(getResourcePath("/test1")); + EList<EObject> contents = resource.getContents(); + for (int i = 0; i < 100; i++) + { + Company company = getModel1Factory().createCompany(); + company.setName("Company " + i); + contents.add(company); + } + + transaction.commit(); + session.close(); + } + + CDOSession session = openSession(); + session.options().setCollectionLoadingPolicy(CDOUtil.createCollectionLoadingPolicy(2, 2)); + + CDOTransaction transaction = session.openTransaction(); + + CDOResource resource = transaction.getResource(getResourcePath("/test1")); + EList<EObject> contents = resource.getContents(); + for (int i = 100; i < 110; i++) + { + Company company = getModel1Factory().createCompany(); + company.setName("Company " + i); + contents.add(company); + } + + CDORevisionData revision = resource.cdoRevision().data(); + EStructuralFeature contentsFeature = EresourcePackage.eINSTANCE.getCDOResource_Contents(); + assertEquals(false, revision.get(contentsFeature, 0) instanceof CDOElementProxy); + assertEquals(false, revision.get(contentsFeature, 1) instanceof CDOElementProxy); + assertEquals(true, revision.get(contentsFeature, 2) instanceof CDOElementProxy); + assertEquals(true, revision.get(contentsFeature, 99) instanceof CDOElementProxy); + assertEquals(false, revision.get(contentsFeature, 100) instanceof CDOElementProxy); + session.close(); + } + + public void testExternalResourceSet() throws Exception + { + { + ResourceSet resourceSet = new ResourceSetImpl(); + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(resourceSet); + transaction.createResource(getResourcePath("/test1")); + transaction.commit(); + session.close(); + } + + CDOSession session = openSession(); + CDOView view = session.openView(); + assertEquals(true, view.hasResource(getResourcePath("/test1"))); + assertEquals(false, view.hasResource(getResourcePath("/test2"))); + session.close(); + } + + public void testContextify() throws Exception + { + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.createResource(getResourcePath("/test1")); + transaction.commit(); + + CDOView view = session.openView(); + CDOResource resource2 = view.getObject(resource); + assertEquals(getResourcePath("/test1"), resource2.getPath()); + session.close(); + } + + @CleanRepositoriesBefore + public void testContextifyDifferentRepository() throws Exception + { + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.createResource(getResourcePath("/test1")); + transaction.commit(); + + getRepository("repo2"); + CDOSession session2 = openSession("repo2"); + CDOView view = session2.openView(); + + try + { + view.getObject(resource); + fail("IllegalArgumentException expected"); + } + catch (IllegalArgumentException success) + { + } + finally + { + session.close(); + session2.close(); + } + } + + public void testContextifySameRepository() throws Exception + { + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + CDOResource resource = transaction.createResource(getResourcePath("/test1")); + transaction.commit(); + + CDOSession session2 = openSession(); + CDOView view = session2.openView(); + + CDOResource object = view.getObject(resource); + assertNotSame(resource, object); + assertEquals(resource.cdoID(), object.cdoID()); + + session.close(); + session2.close(); + } + + public void testCacheReferences() throws Exception + { + CDOSession session = openSession(); + CDOTransaction transaction = session.openTransaction(); + transaction.createResource(getResourcePath("/my/test1")); + transaction.commit(); + + transaction.createResource(getResourcePath("/my/test2")); + transaction.createResource(getResourcePath("/my/test3")); + transaction.createResource(getResourcePath("/my/test4")); + transaction.createResource(getResourcePath("/my/test5")); + + boolean done; + done = transaction.options().setCacheReferenceType(ReferenceType.SOFT); + assertEquals(false, done); + + done = transaction.options().setCacheReferenceType(null); + assertEquals(false, done); + + done = transaction.options().setCacheReferenceType(ReferenceType.STRONG); + assertEquals(true, done); + + done = transaction.options().setCacheReferenceType(ReferenceType.SOFT); + assertEquals(true, done); + + done = transaction.options().setCacheReferenceType(ReferenceType.WEAK); + assertEquals(true, done); + + done = transaction.options().setCacheReferenceType(null); + assertEquals(true, done); + + session.close(); + } + + public void testViewNotifiesDeactivation() + { + CDOSession session = openSession(); + CDOView view = session.openView(); + + final boolean[] deactivated = { false }; + view.addListener(new LifecycleEventAdapter() + { + @Override + protected void onDeactivated(ILifecycle lifecycle) + { + deactivated[0] = true; + } + }); + + view.close(); + assertEquals(true, deactivated[0]); + session.close(); + } +} |