blob: 7178238e879b6f7d04fe5359c0e916823f2a6b05 [file] [log] [blame]
/*
* 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());
}
}