blob: 0e2d0010741c314a9f9705f45d6111bf09a22e39 [file] [log] [blame]
/*
* Copyright (c) 2011, 2012, 2015 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
*
*/
package org.eclipse.emf.cdo.tests.bugzilla;
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.model1.Company;
import org.eclipse.emf.cdo.tests.model1.Customer;
import org.eclipse.emf.cdo.tests.model1.SalesOrder;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
import org.eclipse.emf.common.util.EList;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
/**
* ContainsAll with detached objects
* <p>
* See bug
*
* @author Stefan Schedl
*/
public class Bugzilla_354395_Test extends AbstractCDOTest
{
public void testContains() throws Exception
{
{
CDOSession session = openSession();
CDOTransaction transaction = session.openTransaction();
CDOResource resource = transaction.createResource(getResourcePath("/test1"));
SalesOrder salesOrder = getModel1Factory().createSalesOrder();
Company company = getModel1Factory().createCompany();
company.getSalesOrders().add(salesOrder);
Customer customer = getModel1Factory().createCustomer();
customer.setName("customer");
customer.getSalesOrders().add(salesOrder);
company.getCustomers().add(customer);
resource.getContents().add(company);
transaction.commit();
session.close();
}
CDOSession session = openSession();
CDOTransaction transaction = session.openTransaction();
CDOResource resource = transaction.getResource(getResourcePath("/test1"));
Company company = (Company)resource.getContents().get(0);
SalesOrder salesOrder = company.getSalesOrders().get(0);
// remove salesOrder from its containment list, salesOrder now detached
company.getSalesOrders().remove(salesOrder);
assertTransient(salesOrder);
Customer customer = company.getCustomers().get(0);
EList<SalesOrder> salesOrders = customer.getSalesOrders();
List<SalesOrder> javaList = new ArrayList<SalesOrder>();
for (SalesOrder order : salesOrders)
{
javaList.add(order);
}
Set<SalesOrder> lookFor = Collections.singleton(salesOrder);
// Test contains & containsAll with "normal" java list
assertEquals(true, javaList.contains(salesOrder));
assertEquals(true, javaList.containsAll(lookFor));
// Test contains & containsAll direct with the elist
assertEquals(true, salesOrders.contains(salesOrder));
assertEquals(true, salesOrders.containsAll(lookFor));
}
public void testIndexOf() throws Exception
{
{
CDOSession session = openSession();
CDOTransaction transaction = session.openTransaction();
CDOResource resource = transaction.createResource(getResourcePath("/test1"));
SalesOrder salesOrder = getModel1Factory().createSalesOrder();
Company company = getModel1Factory().createCompany();
company.getSalesOrders().add(salesOrder);
Customer customer = getModel1Factory().createCustomer();
customer.setName("customer");
customer.getSalesOrders().add(salesOrder);
company.getCustomers().add(customer);
resource.getContents().add(company);
transaction.commit();
session.close();
}
CDOSession session = openSession();
CDOTransaction transaction = session.openTransaction();
CDOResource resource = transaction.getResource(getResourcePath("/test1"));
Company company = (Company)resource.getContents().get(0);
SalesOrder salesOrder = company.getSalesOrders().get(0);
// remove salesOrder from its containment list, salesOrder now detached
company.getSalesOrders().remove(salesOrder);
assertTransient(salesOrder);
Customer customer = company.getCustomers().get(0);
EList<SalesOrder> salesOrders = customer.getSalesOrders();
List<SalesOrder> javaList = new ArrayList<SalesOrder>();
for (SalesOrder order : salesOrders)
{
javaList.add(order);
}
// Test indexOf & lastIndexOf with "normal" java list
assertEquals(0, javaList.indexOf(salesOrder));
assertEquals(0, javaList.lastIndexOf(salesOrder));
// Test indexOf & lastIndexOf direct with the elist
assertEquals(0, salesOrders.indexOf(salesOrder));
assertEquals(0, salesOrders.lastIndexOf(salesOrder));
}
}