blob: 899ba104ccff9ead4e459e1ff125b7b76ddbe360 [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.openjpa.persistence.jdbc.meta;
import javax.persistence.EntityManager;
import org.apache.openjpa.persistence.common.utils.*;
import org.apache.openjpa.persistence.kernel.common.apps.*;
import junit.framework.*;
public class TestEJBColumnIOMappings extends org.apache.openjpa.persistence.jdbc.kernel.BaseJDBCTest
{
public TestEJBColumnIOMappings(String name)
{
super(name);
}
public void setUp()
{
deleteAll(ColumnIOPC.class);
}
public void testIgnoreInsert ()
{
ColumnIOPC pc = new ColumnIOPC (2);
pc.setName ("pc");
pc.setIgnoreInsert (10);
EntityManager pm = currentEntityManager();
startTx(pm);
pm.persist(pc);
assertEquals (10, pc.getIgnoreInsert ());
endTx(pm);
startTx(pm);
assertEquals (10, pc.getIgnoreInsert ());
int oid = pc.getId();
endTx(pm);
endEm(pm);
pm = currentEntityManager();
startTx(pm);
pc = pm.find(ColumnIOPC.class, oid);
assertNotNull (pc);
assertEquals (10, pc.getIgnoreInsert ());
pc.setIgnoreInsert (10);
endTx(pm);
startTx(pm);
assertEquals (10, pc.getIgnoreInsert ());
endTx(pm);
endEm(pm);
pm = currentEntityManager();
startTx(pm);
pc = pm.find(ColumnIOPC.class, oid);
assertNotNull (pc);
assertEquals (10, pc.getIgnoreInsert ());
endTx(pm);
endEm(pm);
}
public void testIgnoreUpdate ()
{
ColumnIOPC pc = new ColumnIOPC (3);
pc.setName ("pc");
pc.setIgnoreUpdate (10);
EntityManager pm = currentEntityManager();
startTx(pm);
pm.persist(pc);
assertEquals (10, pc.getIgnoreUpdate ());
endTx(pm);
Object oid = pc.getId();
endEm(pm);
pm = currentEntityManager();
startTx(pm);
pc = pm.find(ColumnIOPC.class, oid);
assertNotNull (pc);
assertEquals (10, pc.getIgnoreUpdate ());
endTx(pm);
startTx(pm);
pc.setIgnoreUpdate (100);
assertEquals (100, pc.getIgnoreUpdate ());
endTx(pm);
endEm(pm);
pm = currentEntityManager();
startTx(pm);
pc = pm.find(ColumnIOPC.class, oid);
assertNotNull (pc);
assertEquals (10, pc.getIgnoreUpdate ());
endTx(pm);
endEm(pm);
}
public void testPrimitiveMappedToFieldOfForeignKey ()
{
// have to make rel persistent before setting ident field b/c not
// insertable
ColumnIOPC rel = new ColumnIOPC (1);
rel.setName ("rel");
EntityManager pm = currentEntityManager();
startTx(pm);
pm.persist(rel);
endTx(pm);
startTx(pm);
ColumnIOPC pc = new ColumnIOPC (2);
pc.setName ("pc");
rel = pm.find(ColumnIOPC.class, 1);
pc.setRel (rel);
rel.setIdent (10);
pm.persist(pc);
endTx(pm);
endEm(pm);
pm = currentEntityManager();
startTx(pm);
pc = pm.find(ColumnIOPC.class, 2);
assertNotNull (pc);
assertEquals (0, pc.getIdent ());
assertNotNull (pc.getRel ());
assertEquals ("rel", pc.getRel ().getName ());
pc.setIdent (50);
pc.setRel (new ColumnIOPC (3));
endTx(pm);
endEm(pm);
pm = currentEntityManager();
startTx(pm);
pc = pm.find(ColumnIOPC.class, 2);
assertNotNull (pc);
assertEquals (50, pc.getIdent());
assertNotNull (pc.getRel());
endTx(pm);
endEm(pm);
}
}