/* | |
* 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.meta; | |
import org.apache.openjpa.persistence.meta.common.apps.SequenceAssigned; | |
import org.apache.openjpa.persistence.meta.common.apps.SequenceAssigned2; | |
import org.apache.openjpa.persistence.meta.common.apps.SequenceAssigned3; | |
import org.apache.openjpa.persistence.common.utils.AbstractTestCase; | |
import org.apache.openjpa.persistence.OpenJPAEntityManager; | |
public class TestSequenceAssigned | |
extends AbstractTestCase { | |
public TestSequenceAssigned(String testName) { | |
super(testName, "metacactusapp"); | |
} | |
public void setUp() { | |
deleteAll(SequenceAssigned.class); | |
deleteAll(SequenceAssigned3.class); | |
} | |
public void testGetObjectId() { | |
SequenceAssigned pc = new SequenceAssigned(); | |
OpenJPAEntityManager pm = | |
(OpenJPAEntityManager) currentEntityManager(); | |
startTx(pm); | |
pm.persist(pc); | |
SequenceAssigned.Id id = (SequenceAssigned.Id) | |
pm.getObjectId(pc); | |
assertTrue(0 != id.pk); | |
assertTrue(0 != pc.getPK()); | |
assertEquals(pc.getPK(), id.pk); | |
endTx(pm); | |
endEm(pm); | |
} | |
public void testGetValue() { | |
SequenceAssigned pc = new SequenceAssigned(); | |
OpenJPAEntityManager pm = | |
(OpenJPAEntityManager) currentEntityManager(); | |
startTx(pm); | |
assertEquals(0, pc.getPK()); | |
pm.persist(pc); | |
assertTrue(0 != pc.getPK()); | |
endTx(pm); | |
endEm(pm); | |
} | |
public void testPrimitive() { | |
SequenceAssigned pc = new SequenceAssigned(); | |
SequenceAssigned pc2 = new SequenceAssigned(); | |
OpenJPAEntityManager pm = | |
(OpenJPAEntityManager) currentEntityManager(); | |
startTx(pm); | |
pm.persist(pc); | |
pm.persist(pc2); | |
pm.flush(); | |
assertTrue(0 != pc.getPK()); | |
assertTrue(0 != pc2.getPK()); | |
assertTrue(pc.getPK() != pc2.getPK()); | |
endTx(pm); | |
endEm(pm); | |
} | |
public void testManualAssign() { | |
SequenceAssigned pc = new SequenceAssigned(); | |
SequenceAssigned3 pc2 = new SequenceAssigned3(); | |
OpenJPAEntityManager pm = | |
(OpenJPAEntityManager) currentEntityManager(); | |
startTx(pm); | |
pc.setPK(-100); | |
pc2.setPK(new Long(-100)); | |
pm.persist(pc); | |
pm.persist(pc2); | |
pm.flush(); | |
endTx(pm); | |
Object oid = pm.getObjectId(pc); | |
Object oid2 = pm.getObjectId(pc2); | |
endEm(pm); | |
pm = (OpenJPAEntityManager) currentEntityManager(); | |
pc = (SequenceAssigned) pm.find(SequenceAssigned.class, oid); | |
pc2 = (SequenceAssigned3) pm.find(SequenceAssigned3.class, oid2); | |
assertEquals(-100, pc.getPK()); | |
assertEquals(new Long(-100), pc2.getPK()); | |
endEm(pm); | |
} | |
public void testInheritance() { | |
SequenceAssigned2 pc = new SequenceAssigned2(); | |
SequenceAssigned2 pc2 = new SequenceAssigned2(); | |
OpenJPAEntityManager pm = | |
(OpenJPAEntityManager) currentEntityManager(); | |
startTx(pm); | |
pm.persist(pc); | |
pm.persist(pc2); | |
pm.flush(); | |
assertTrue(0 != pc.getPK()); | |
assertTrue(0 != pc2.getPK()); | |
assertTrue(pc.getPK() != pc2.getPK()); | |
endTx(pm); | |
endEm(pm); | |
} | |
public void testWrapper() { | |
SequenceAssigned3 pc = new SequenceAssigned3(); | |
SequenceAssigned3 pc2 = new SequenceAssigned3(); | |
OpenJPAEntityManager pm = | |
(OpenJPAEntityManager) currentEntityManager(); | |
startTx(pm); | |
pm.persist(pc); | |
pm.persist(pc2); | |
pm.flush(); | |
assertNotNull(pc.getPK()); | |
assertNotNull(pc2.getPK()); | |
assertTrue(0 != pc.getPK().longValue()); | |
assertTrue(0 != pc2.getPK().longValue()); | |
assertNotEquals(pc.getPK(), pc2.getPK()); | |
endTx(pm); | |
endEm(pm); | |
} | |
public void testGetObjectById() { | |
OpenJPAEntityManager pm = | |
(OpenJPAEntityManager) currentEntityManager(); | |
startTx(pm); | |
SequenceAssigned pc = new SequenceAssigned(); | |
pm.persist(pc); | |
Object oid = pm.getObjectId(pc); | |
assertTrue(0 != ((SequenceAssigned.Id) oid).pk); | |
endTx(pm); | |
endEm(pm); | |
pm = (OpenJPAEntityManager) currentEntityManager(); | |
pm.find(SequenceAssigned.class, oid); | |
endEm(pm); | |
} | |
public void testReachability() { | |
SequenceAssigned pc = new SequenceAssigned(); | |
SequenceAssigned pc2 = new SequenceAssigned(); | |
pc.setOther(pc2); | |
OpenJPAEntityManager pm = | |
(OpenJPAEntityManager) currentEntityManager(); | |
startTx(pm); | |
pm.persist(pc); | |
endTx(pm); | |
SequenceAssigned.Id id = (SequenceAssigned.Id) | |
pm.getObjectId(pc2); | |
assertTrue(0 != id.pk); | |
assertTrue(0 != pc2.getPK()); | |
assertEquals(pc2.getPK(), id.pk); | |
endEm(pm); | |
} | |
} |