/******************************************************************************* | |
* Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved. | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 | |
* which accompanies this distribution. | |
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html | |
* and the Eclipse Distribution License is available at | |
* http://www.eclipse.org/org/documents/edl-v10.php. | |
* | |
* Contributors: | |
* Oracle - initial API and implementation from Oracle TopLink | |
******************************************************************************/ | |
package org.eclipse.persistence.testing.tests.writing; | |
import java.util.*; | |
import org.eclipse.persistence.testing.models.ownership.*; | |
/** | |
* Test changing private parts of an object. | |
*/ | |
public class UpdateDeepOwnershipTest extends ComplexUpdateTest { | |
public UpdateDeepOwnershipTest() { | |
super(); | |
} | |
public UpdateDeepOwnershipTest(ObjectA originalObject) { | |
super(originalObject); | |
String testName = "UpdateDeepOwnershipTest("; | |
if (usesUnitOfWork) { | |
testName = testName + "with UOW, "; | |
} | |
testName = testName + originalObject.getClass() + ")"; | |
setName(testName); | |
setDescription("This tests changing deeply private parts of an object for update."); | |
} | |
protected void changeObject() { | |
ObjectA a = (ObjectA)this.workingCopy; | |
ObjectB b = (ObjectB)a.oneToOne.getValue(); | |
Vector cs = (Vector)b.oneToMany.getValue(); | |
ObjectC c = (ObjectC)cs.firstElement(); | |
ObjectD d = (ObjectD)c.oneToOne.getValue(); | |
Vector es = (Vector)d.oneToMany.getValue(); | |
ObjectE e = (ObjectE)es.firstElement(); | |
e.setName("Foo"); | |
es.removeElement(es.lastElement()); | |
cs.removeElement(cs.lastElement()); | |
b.setName("lola"); | |
} | |
} |