package org.apache.torque.generated.dataobject;
/*
* 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.
*/
import junit.framework.TestCase;
import org.apache.torque.test.dbobject.NullableOIntegerFk;
import org.apache.torque.test.dbobject.NullablePIntegerFk;
import org.apache.torque.test.dbobject.OIntegerFkToPPk;
import org.apache.torque.test.dbobject.OIntegerPk;
import org.apache.torque.test.dbobject.PIntegerFkToOPk;
import org.apache.torque.test.dbobject.PIntegerPk;
/**
* Tests the foreign key adder methods in the generated data object classes.
*
* @version $Id: ForeignKeyAdderTest.java 1395238 2012-10-07 07:30:25Z tfischer $
*/
public class ForeignKeyAdderTest extends TestCase
{
/**
* Tests that the add method works if referenced and referencing are
* related by primitive ints and the referenced object has an id of zero.
*
* @throws Exception if an error occurs.
*/
public void testAddPrimitiveIntFkZero() throws Exception
{
// prepare
PIntegerPk pIntegerPk = new PIntegerPk();
NullablePIntegerFk nullablePIntegerFk = new NullablePIntegerFk();
// execute
pIntegerPk.addNullablePIntegerFk(nullablePIntegerFk);
// verify
assertEquals(1, pIntegerPk.getNullablePIntegerFks().size());
assertSame(
nullablePIntegerFk,
pIntegerPk.getNullablePIntegerFks().get(0));
assertEquals(0, nullablePIntegerFk.getFk());
assertSame(pIntegerPk, nullablePIntegerFk.getPIntegerPk());
}
/**
* Tests that the add method works if referenced and referencing are
* related by primitive ints and the referenced object has an id
* which is not equal to zero.
*
* @throws Exception if an error occurs.
*/
public void testAddPrimitiveIntFkNonZero() throws Exception
{
// prepare
PIntegerPk pIntegerPk = new PIntegerPk();
pIntegerPk.setId(23);
NullablePIntegerFk nullablePIntegerFk = new NullablePIntegerFk();
// execute
pIntegerPk.addNullablePIntegerFk(nullablePIntegerFk);
// verify
assertEquals(1, pIntegerPk.getNullablePIntegerFks().size());
assertSame(
nullablePIntegerFk,
pIntegerPk.getNullablePIntegerFks().get(0));
assertEquals(23, nullablePIntegerFk.getFk());
assertSame(pIntegerPk, nullablePIntegerFk.getPIntegerPk());
}
/**
* Tests that the add method works if the referenced object has an
* primitive PK but the referencing object has an object FK,
* and the referenced object has an id of null.
*
* This case is questionable, because 0 has a different meaning in both
* cases.
*
* @throws Exception if an error occurs.
*/
public void testAddObjectToPrimitiveFkNull() throws Exception
{
// prepare
PIntegerPk pIntegerPk = new PIntegerPk();
OIntegerFkToPPk oIntegerFkToPPk = new OIntegerFkToPPk();
// execute
pIntegerPk.addOIntegerFkToPPk(oIntegerFkToPPk);
// verify
assertEquals(1, pIntegerPk.getOIntegerFkToPPks().size());
assertSame(
oIntegerFkToPPk,
pIntegerPk.getOIntegerFkToPPks().get(0));
assertEquals(new Integer(0), oIntegerFkToPPk.getFk());
assertSame(pIntegerPk, oIntegerFkToPPk.getPIntegerPk());
}
/**
* Tests that the add method works if the referenced object has an
* primitive PK but the referencing object has an object FK,
* which is not equal to zero.
*
* @throws Exception if an error occurs.
*/
public void testAddObjectToPrimitiveFkNonZero() throws Exception
{
// prepare
PIntegerPk pIntegerPk = new PIntegerPk();
pIntegerPk.setId(4);
OIntegerFkToPPk oIntegerFkToPPk = new OIntegerFkToPPk();
// execute
pIntegerPk.addOIntegerFkToPPk(oIntegerFkToPPk);
// verify
assertEquals(1, pIntegerPk.getOIntegerFkToPPks().size());
assertSame(
oIntegerFkToPPk,
pIntegerPk.getOIntegerFkToPPks().get(0));
assertEquals(new Integer(4), oIntegerFkToPPk.getFk());
assertSame(pIntegerPk, oIntegerFkToPPk.getPIntegerPk());
}
/**
* Tests that the add method works if referenced and referencing are
* related by object integers and the referenced object has an id of null.
*
* @throws Exception if an error occurs.
*/
public void testAddObjectIntegerFkNull() throws Exception
{
// prepare
OIntegerPk oIntegerPk = new OIntegerPk();
NullableOIntegerFk nullableOIntegerFk = new NullableOIntegerFk();
// execute
oIntegerPk.addNullableOIntegerFk(nullableOIntegerFk);
// verify
assertEquals(1, oIntegerPk.getNullableOIntegerFks().size());
assertSame(
nullableOIntegerFk,
oIntegerPk.getNullableOIntegerFks().get(0));
assertEquals(null, nullableOIntegerFk.getFk());
assertSame(oIntegerPk, nullableOIntegerFk.getOIntegerPk());
}
/**
* Tests that the add method works if referenced and referencing are
* related by object integers and the referenced object has an id of zero.
*
* @throws Exception if an error occurs.
*/
public void testAddObjectIntegerFkZero() throws Exception
{
// prepare
OIntegerPk oIntegerPk = new OIntegerPk();
oIntegerPk.setId(0);
NullableOIntegerFk nullableOIntegerFk = new NullableOIntegerFk();
// execute
oIntegerPk.addNullableOIntegerFk(nullableOIntegerFk);
// verify
assertEquals(1, oIntegerPk.getNullableOIntegerFks().size());
assertSame(
nullableOIntegerFk,
oIntegerPk.getNullableOIntegerFks().get(0));
assertEquals(new Integer(0), nullableOIntegerFk.getFk());
assertSame(oIntegerPk, nullableOIntegerFk.getOIntegerPk());
}
/**
* Tests that the add method works if referenced and referencing are
* related by object integers and the referenced object has an id
* which is not equal to zero.
*
* @throws Exception if an error occurs.
*/
public void testAddObjectIntegerFkNonZero() throws Exception
{
// prepare
OIntegerPk oIntegerPk = new OIntegerPk();
oIntegerPk.setId(13);
NullableOIntegerFk nullableOIntegerFk = new NullableOIntegerFk();
// execute
oIntegerPk.addNullableOIntegerFk(nullableOIntegerFk);
// verify
assertEquals(1, oIntegerPk.getNullableOIntegerFks().size());
assertSame(
nullableOIntegerFk,
oIntegerPk.getNullableOIntegerFks().get(0));
assertEquals(new Integer(13), nullableOIntegerFk.getFk());
assertSame(oIntegerPk, nullableOIntegerFk.getOIntegerPk());
}
/**
* Tests that the add method works if the referenced object has an
* Object PK but the referencing object has a primitive FK,
* and the referenced object has an id of null.
*
* This case is questionable, because the related fields in referencing
* and referenced object are different.
* However, both values mean that the final id does not yet exist.
*
* @throws Exception if an error occurs.
*/
public void testAddPrimitiveToObjectFkNull() throws Exception
{
// prepare
OIntegerPk oIntegerPk = new OIntegerPk();
PIntegerFkToOPk pIntegerFkToOPk = new PIntegerFkToOPk();
// execute
oIntegerPk.addPIntegerFkToOPk(pIntegerFkToOPk);
// verify
assertEquals(1, oIntegerPk.getPIntegerFkToOPks().size());
assertSame(
pIntegerFkToOPk,
oIntegerPk.getPIntegerFkToOPks().get(0));
assertEquals(0, pIntegerFkToOPk.getFk());
assertSame(oIntegerPk, pIntegerFkToOPk.getOIntegerPk());
}
/**
* Tests that the add method works if the referenced object has an
* Object PK but the referencing object has a primitive FK,
* and the referenced object has an id of zero.
*
* This case is questionable, because 0 means that the id is not yet
* determined for a primitive key. But in practice ids will start at 1
* so this should not happen.
*
* @throws Exception if an error occurs.
*/
public void testAddPrimitiveToObjectFkZero() throws Exception
{
// prepare
OIntegerPk oIntegerPk = new OIntegerPk();
oIntegerPk.setId(0);
PIntegerFkToOPk pIntegerFkToOPk = new PIntegerFkToOPk();
// execute
oIntegerPk.addPIntegerFkToOPk(pIntegerFkToOPk);
// verify
assertEquals(1, oIntegerPk.getPIntegerFkToOPks().size());
assertSame(
pIntegerFkToOPk,
oIntegerPk.getPIntegerFkToOPks().get(0));
assertEquals(0, pIntegerFkToOPk.getFk());
assertSame(oIntegerPk, pIntegerFkToOPk.getOIntegerPk());
}
/**
* Tests that the add method works if referenced and referencing are
* related by primitive ints and the referenced object has an id
* which is not equal to zero.
*
* @throws Exception if an error occurs.
*/
public void testAddPrimitiveToObjectFkNonZero() throws Exception
{
// prepare
OIntegerPk oIntegerPk = new OIntegerPk();
oIntegerPk.setId(4);
PIntegerFkToOPk pIntegerFkToOPk = new PIntegerFkToOPk();
// execute
oIntegerPk.addPIntegerFkToOPk(pIntegerFkToOPk);
// verify
assertEquals(1, oIntegerPk.getPIntegerFkToOPks().size());
assertSame(
pIntegerFkToOPk,
oIntegerPk.getPIntegerFkToOPks().get(0));
assertEquals(4, pIntegerFkToOPk.getFk());
assertSame(oIntegerPk, pIntegerFkToOPk.getOIntegerPk());
}
}