You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by cu...@apache.org on 2010/10/07 23:26:53 UTC
svn commit: r1005642 - in
/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence:
jdbc/schema/TestSchemaTool.java kernel/TestSuppressBatchOLE.java
Author: curtisr7
Date: Thu Oct 7 21:26:53 2010
New Revision: 1005642
URL: http://svn.apache.org/viewvc?rev=1005642&view=rev
Log:
OPENJPA-1415: Add test case.
Added:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaTool.java (with props)
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSuppressBatchOLE.java (with props)
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaTool.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaTool.java?rev=1005642&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaTool.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaTool.java Thu Oct 7 21:26:53 2010
@@ -0,0 +1,62 @@
+/*
+ * 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.schema;
+
+import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
+import org.apache.openjpa.persistence.query.Employee;
+import org.apache.openjpa.persistence.test.SingleEMFTestCase;
+
+public class TestSchemaTool extends SingleEMFTestCase {
+ @Override
+ public void setUp() throws Exception {
+ super.setUp(CLEAR_TABLES, Employee.class);
+ }
+
+ private void createSecondPU() {
+ createNamedEMF("mdr-pu", "openjpa.Log","SQL=trace","openjpa.jdbc.SynchronizeMappings",
+ "buildSchema(SchemaAction='add,refresh,deleteTableContents')").createEntityManager().close();
+ }
+
+ public void tearDown() throws Exception {
+
+ }
+
+ public void testRefreshDeleteTableContents() throws Exception {
+ String sql = "SELECT COUNT (e) from Employee e";
+ OpenJPAEntityManagerSPI em = emf.createEntityManager();
+
+ long before = em.createQuery(sql, Long.class).getSingleResult();
+
+ em.getTransaction().begin();
+ Employee e = new Employee();
+ e.setEmpId(System.currentTimeMillis());
+ em.persist(e);
+ em.getTransaction().commit();
+ // Make sure that we created a new one.
+ long update = em.createQuery(sql, Long.class).getSingleResult();
+ assertEquals(Long.valueOf(before + 1), Long.valueOf(update));
+ em.clear();
+ // Create the second PU, see if that cleans up tables it shouldn't be.
+ createSecondPU();
+
+ long after = em.createQuery(sql, Long.class).getSingleResult();
+ assertEquals(update, after);
+
+ }
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/schema/TestSchemaTool.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSuppressBatchOLE.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSuppressBatchOLE.java?rev=1005642&view=auto
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSuppressBatchOLE.java (added)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSuppressBatchOLE.java Thu Oct 7 21:26:53 2010
@@ -0,0 +1,86 @@
+/*
+ * 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.kernel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.persistence.RollbackException;
+
+import org.apache.openjpa.jdbc.kernel.EntityA;
+import org.apache.openjpa.jdbc.kernel.EntityB;
+import org.apache.openjpa.jdbc.kernel.EntityC;
+import org.apache.openjpa.jdbc.kernel.EntityD;
+import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
+import org.apache.openjpa.persistence.test.SingleEMFTestCase;
+
+public class TestSuppressBatchOLE extends SingleEMFTestCase {
+ @Override
+ public void setUp() throws Exception {
+ setUp(CLEAR_TABLES, org.apache.openjpa.jdbc.kernel.EntityA.class, org.apache.openjpa.jdbc.kernel.EntityB.class,
+ org.apache.openjpa.jdbc.kernel.EntityC.class, org.apache.openjpa.jdbc.kernel.EntityD.class,
+ "openjpa.BrokerImpl", "SuppressBatchOLELogging=true", "openjpa.jdbc.DBDictionary", "batchLimit=-1",
+ "openjpa.DataCache", "false");
+ }
+
+ public void test() throws Exception {
+ OpenJPAEntityManagerSPI em1 = emf.createEntityManager();
+ OpenJPAEntityManagerSPI em2 = emf.createEntityManager();
+
+ em1.getTransaction().begin();
+ List<EntityA> entities = new ArrayList<EntityA>();
+ for (int i = 0; i < 25; i++) {
+ EntityA a = createEntity();
+ entities.add(a);
+ em1.persist(a);
+ }
+ em1.getTransaction().commit();
+ em1.clear();
+
+ em1.getTransaction().begin();
+ em2.getTransaction().begin();
+ for (EntityA a : entities) {
+ EntityA a1 = em1.find(EntityA.class, a.getId());
+ EntityA a2 = em2.find(EntityA.class, a.getId());
+ a1.setName("asdf");
+ a2.setName("asdf2");
+ }
+ em1.getTransaction().commit();
+ try {
+ em2.getTransaction().commit();
+ } catch (RollbackException e) {
+ assertTrue(e.getMessage().contains("Suppressing"));
+ }
+
+ }
+
+ EntityA createEntity() {
+ EntityA res = new EntityA();
+ EntityB b = new EntityB();
+ EntityC c = new EntityC();
+ EntityD d = new EntityD();
+
+ res.setEntityB(b);
+ b.setEntityC(c);
+ c.setEntityD(d);
+
+ return res;
+ }
+
+}
Propchange: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/kernel/TestSuppressBatchOLE.java
------------------------------------------------------------------------------
svn:eol-style = native