/* * Copyright (c) 2014 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: * Esteban Dugueperoux */ package org.eclipse.emf.cdo.tests.bugzilla; import org.eclipse.emf.cdo.CDOObjectReference; import org.eclipse.emf.cdo.eresource.CDOResource; import org.eclipse.emf.cdo.session.CDOSession; import org.eclipse.emf.cdo.tests.AbstractCDOTest; import org.eclipse.emf.cdo.tests.model6.A; import org.eclipse.emf.cdo.tests.model6.CanReferenceLegacy; import org.eclipse.emf.cdo.transaction.CDOTransaction; import org.eclipse.emf.cdo.util.CDOUtil; import org.eclipse.emf.cdo.view.CDOView; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EStructuralFeature.Setting; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.util.EcoreUtil; import java.util.Collection; import java.util.List; /** * Test {@link CDOView#queryXRefs(org.eclipse.emf.cdo.CDOObject, EReference...)} with cross references typed EObject. * * @author Esteban Dugueperoux */ public class Bugzilla_417782_Test extends AbstractCDOTest { public void testEObjectReference() throws Exception { A itemA = getModel6Factory().createA(); CanReferenceLegacy itemRefContainer = getModel6Factory().createCanReferenceLegacy(); itemRefContainer.setSingleReference(itemA); CDOSession session1 = openSession(); CDOTransaction transaction = session1.openTransaction(); CDOResource resource = transaction.createResource(getResourcePath("/test1")); resource.getContents().add(itemA); resource.getContents().add(itemRefContainer); transaction.commit(); List<CDOObjectReference> rc = transaction.queryXRefs(CDOUtil.getCDOObject(itemA), new EReference[] {}); assertEquals(1, rc.size()); Collection<Setting> rc2 = EcoreUtil.UsageCrossReferencer.find(itemA, (Resource)resource); assertEquals(1, rc2.size()); } }