blob: a410c0402c232b011e81cd50537f2a6625b7ae1c [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 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 v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// dminsky - initial API and implementation
package org.eclipse.persistence.testing.tests.isolatedsession;
import org.eclipse.persistence.sessions.UnitOfWork;
import org.eclipse.persistence.testing.framework.TestCase;
/**
* EL Bug 426500 - Modifying a mapping's selectionCriteria in afterLoad can result in uninitialized DatabaseField instances
* @author dminsky
*/
public class IsolatedOneToManyQueryModificationTest extends TestCase {
public IsolatedOneToManyQueryModificationTest() {
super();
setDescription("IsolatedOneToManyQueryModificationTest");
}
@Override
public void test() {
IsolatedParent exampleParent = IsolatedParent.buildIsolatedParentExample2();
for (int i = 0; i < 100; i++) {
UnitOfWork uow = getSession().acquireUnitOfWork();
exampleParent = (IsolatedParent)uow.readObject(exampleParent);
IsolatedParent result = (IsolatedParent) uow.executeQuery("findParentBySerial", IsolatedParent.class, exampleParent.getSerial());
assertNotNull("Parent should not be null", result);
assertNotNull("Parent should not have a null collection", result.getChildren());
assertEquals("Parent should be the same id", exampleParent.getId(), result.getId());
assertEquals("Parent should be the same serial", exampleParent.getSerial(), result.getSerial());
assertEquals("Parent should not have a zero length collection", exampleParent.getChildren().size(), result.getChildren().size());
IsolatedChild child = result.getChildren().get(0);
IsolatedChild exampleChild = exampleParent.getChildren().get(0);
assertNotNull("Only child should not be null", child);
assertEquals("Only child should have the same id", exampleChild.getId(), child.getId());
assertNotNull("Only child should have a valid parent", child.getParent());
assertEquals("Only child should reference the found parent", result, child.getParent());
uow.release();
}
}
}