* Checks the second save also saves unchanged values.
*/
public void testNotNewObjectSavesUnchangedValues() throws Exception
{
DatabaseDefaultValuesPeer.doDelete(new Criteria());
DatabaseDefaultValues databaseDefaultValues
= new DatabaseDefaultValues();
databaseDefaultValues.save();
// modify object in db so we can check that the unchanged values
// are saved
List<DatabaseDefaultValues> databaseDefaultValuesList
= DatabaseDefaultValuesPeer.doSelect(new Criteria());
assertEquals(1, databaseDefaultValuesList.size());
DatabaseDefaultValues changedValuesInDatabase
= databaseDefaultValuesList.get(0);
changedValuesInDatabase.setOInteger(1);
changedValuesInDatabase.setPInt(3);
changedValuesInDatabase.setVarcharField("Changed!");
changedValuesInDatabase.setDateField(
new GregorianCalendar(1990, 2, 4).getTime());
changedValuesInDatabase.setTimeField(new Date(2500L));
changedValuesInDatabase.setTimestampField(
new GregorianCalendar(1990, 2, 4).getTime());
changedValuesInDatabase.save();
databaseDefaultValues.setModified(true);
// second save behaves differently because object is not new any more
// unchanged values should also be saved
databaseDefaultValues.save();
// saved object should stay the same
assertEquals(Integer.valueOf(2), databaseDefaultValues.getOInteger());
assertEquals(4, databaseDefaultValues.getPInt());
assertEquals("Default!", databaseDefaultValues.getVarcharField());
assertEquals(null, databaseDefaultValues.getDateField());
assertEquals(null, databaseDefaultValues.getTimeField());
assertEquals(null, databaseDefaultValues.getTimestampField());
// re-loading should give the unchanged values
// (changes in the db were overwritten by the second save)
databaseDefaultValuesList
= DatabaseDefaultValuesPeer.doSelect(new Criteria());
assertEquals(1, databaseDefaultValuesList.size());
DatabaseDefaultValues databaseDefaultValuesSaved
= databaseDefaultValuesList.get(0);
assertEquals(
new Integer(2),
databaseDefaultValuesSaved.getOInteger());
assertEquals(4, databaseDefaultValuesSaved.getPInt());
assertEquals("Default!", databaseDefaultValuesSaved.getVarcharField());
assertEquals(null, databaseDefaultValuesSaved.getDateField());
assertEquals(null, databaseDefaultValuesSaved.getTimeField());
assertEquals(null, databaseDefaultValuesSaved.getTimestampField());
}