blob: cd5f791a1ffa0f15988a5662708158cb0160e00b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jdo.tck.models.inheritance;
import org.apache.jdo.tck.JDO_Test;
import org.apache.jdo.tck.pc.inheritance.Constants;
/**
* The test data is in arrays, making it easy to change values. The Inheritance test classes refer to the
* data via array index and the checkXXXX() routines carry an index value--indicating the expected value.
* If those attributes are references and should be other than null, as is the case with thirdObj, then the
* test code inserts the reference into the data array.
*
* Each test class follows the same pattern:
* 1. Persistent and transient object are created in the first transaction.
* 2. A second transaction is started, the first persistent object retrieved and checking is done on
* its attribute values.
* 3. A rollback is performed and value comparisions are made on the transient instances that were created.
* 4. A third transation is started and the first persistent object again retrieved and checking is done on
* its attribute values.
*/
public abstract class TestParts extends JDO_Test {
// 0 1 2 3 4 5 6 7 8 9 10 11
static final Object[] secondObj_V = { null, null, null, null, null, null, null, null, null, null, null, null};
static final Object[] thirdObj_V = { null, null, null, null, null, null, null, null, null, null, null, null};
static final Object[] fourthObj_V = { null, null, null, null, null, null, null, null, null, null, null, null};
static String persistentAfterCommit = "Read object back after committed to Database. ";
static String persistentAfterRollback = "Read object back after rollback. ";
static String transientAfterRollback = "Object reverted to transient after rollback. ";
/** */
void checkPersistentAreCorrect(String assertion, String title, int index,
double doubleB, int intB, short shortF,
Object thirdObj, int intH) {
if(doubleB != Constants.doubleB_V[index]) {
fail(assertion,
title + "Persistent attribute doubleB is " + doubleB +
", it should be " + Constants.doubleB_V[index]);
}
if(intB != Constants.intB_V[index]) {
fail(assertion,
title + "Persistent attribute intB is " + intB +
", it should be " + Constants.intB_V[index]);
}
if(shortF != Constants.shortF_V[index]) {
fail(assertion,
title + "Persistent attribute shortF is " + shortF +
", it should be " + Constants.shortF_V[index]);
}
if(thirdObj != TestParts.thirdObj_V[index]) {
fail(assertion,
title + "Persistent attribute thirdObj is " + thirdObj +
", it should be " + TestParts.thirdObj_V[index]);
}
if(intH != Constants.intH_V[index]) {
fail(assertion,
title + "Persistent attribute intH is " + intH +
", it should be " + Constants.intH_V[index]);
}
}
/** */
void checkTransactionalAreCorrect(String assertion, String title, int index,
float floatE, Object secondObj) {
if(floatE != Constants.floatE_V[index]) {
fail(assertion,
title + "Transactional attribute floatE is " + floatE +
", it should be " + Constants.floatE_V[index]);
}
if(secondObj != TestParts.secondObj_V[index]) {
fail(assertion,
title + "Transactional attribute secondObj is " + secondObj +
", it should be " + TestParts.secondObj_V[index]);
}
}
/** */
void checkNonpersistentAreCorrect(String assertion, String title, int index,
int intA, char charC, boolean booleanD,
short shortG, Object fourthObj) {
if(intA != Constants.intA_V[index]) {
fail(assertion,
title + "In non-persistent class, attribute intA is " + intA +
", it should be " + Constants.intA_V[index]);
}
if(charC != Constants.charC_V[index]) {
fail(assertion,
title + "In non-persistent class, attribute charC is " + charC +
", it should be " + Constants.charC_V[index]);
}
if(booleanD != Constants.booleanD_V[index]) {
fail(assertion,
title + "In non-persistent class, attribute booleanD is " + booleanD +
", it should be " + Constants.booleanD_V[index]);
}
if(shortG != Constants.shortG_V[index]) {
fail(assertion,
title + "In non-persistent class, attribute shortG is " + shortG +
", it should be " + Constants.shortG_V[index]);
}
if(fourthObj != TestParts.fourthObj_V[index]) {
fail(assertion,
title + "In non-persistent class, attribute fourthObj is " + fourthObj +
", it should be " + TestParts.fourthObj_V[index]);
}
}
}