/******************************************************************************* * Copyright (c) 1998, 2015 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.inheritance; import org.eclipse.persistence.expressions.*; import org.eclipse.persistence.testing.framework.*; import org.eclipse.persistence.testing.models.inheritance.Car; public class OverrideInheritedMappingTest extends TestCase { private Car theCar; private Number carID; /** * This method was created in VisualAge. */ public OverrideInheritedMappingTest() { setDescription("Subclass is able to override inherited mapping"); } /** * This method was created in VisualAge. */ public void reset() { getSession().getIdentityMapAccessor().initializeAllIdentityMaps(); } /** * This method was created in VisualAge. */ public void setup() { this.theCar = Car.example4(); } /** * This method was created in VisualAge. */ public void test() { //Insert a car org.eclipse.persistence.sessions.UnitOfWork uow = getSession().acquireUnitOfWork(); uow.registerObject(this.theCar); uow.commit(); //Get the car's ID Car carRead = (Car)getSession().readObject(this.theCar); this.carID = carRead.id; //Initialize idmaps getSession().getIdentityMapAccessor().initializeAllIdentityMaps(); } /** * This method was created in VisualAge. */ public void verify() { //Update fuel capacity of the previously inserted car getSession().executeNonSelectingCall(new org.eclipse.persistence.queries.SQLCall("UPDATE CAR SET FUEL_CAP = 200 WHERE (ID = " + this.carID + ")")); //this.theCar.fuelCapacity = new Integer(200); //getAbstractSession().updateObject(this.theCar); //Read the car and check that the field was set (override of inherited mapping worked) Car carRead = (Car)getSession().readObject(Car.class, new ExpressionBuilder().get("id").equal(this.carID)); if (carRead.fuelCapacity.intValue() != 200) { throw new TestErrorException("The inherited mapping was not overridden!"); } } }