ensuring PEOPLE schema is consistently cleaned up via a common superclass
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/3d826479 Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/3d826479 Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/3d826479 Branch: refs/heads/CAY-1946_1 Commit: 3d8264792c1ac0ed1a1a2ebe2c8b76edf01ff673 Parents: ccb180e Author: aadamchik <aadamc...@apache.org> Authored: Mon Nov 24 20:26:59 2014 +0300 Committer: aadamchik <aadamc...@apache.org> Committed: Mon Nov 24 20:36:29 2014 +0300 ---------------------------------------------------------------------- .../DataContextEJBQLConditionsPeopleIT.java | 49 +++---------- .../access/DataContextEJBQLInheritanceIT.java | 31 ++------ .../access/DataContextQualifiedEntityIT.java | 23 ++---- .../access/SingleTableInheritanceIT.java | 75 ++++++-------------- .../map/EntityResolverInheritanceIT.java | 13 ++-- ...ryPrefetchRouterActionQualifiedEntityIT.java | 13 ++-- .../unit/di/server/PeopleProjectCase.java | 38 ++++++++++ .../unit/di/server/UseServerRuntime.java | 2 + .../util/DeepMergeOperationInheritanceIT.java | 31 +++----- 9 files changed, 106 insertions(+), 169 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java index 05078ee..3aaa6bd 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLConditionsPeopleIT.java @@ -18,58 +18,29 @@ ****************************************************************/ package org.apache.cayenne.access; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + import org.apache.cayenne.ObjectContext; import org.apache.cayenne.di.Inject; import org.apache.cayenne.query.EJBQLQuery; -import org.apache.cayenne.test.jdbc.DBHelper; -import org.apache.cayenne.test.jdbc.TableHelper; import org.apache.cayenne.testdo.inheritance_people.Address; import org.apache.cayenne.testdo.inheritance_people.Department; import org.apache.cayenne.testdo.inheritance_people.Manager; -import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.DBCleaner; -import org.apache.cayenne.unit.di.server.ServerCase; -import org.apache.cayenne.unit.di.server.UseServerRuntime; +import org.apache.cayenne.unit.di.server.PeopleProjectCase; import org.junit.Before; import org.junit.Test; -import java.sql.Types; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT) -public class DataContextEJBQLConditionsPeopleIT extends ServerCase { - - @Inject - private DBHelper dbHelper; +public class DataContextEJBQLConditionsPeopleIT extends PeopleProjectCase { @Inject private ObjectContext context; - @Inject - protected DBCleaner dbCleaner; - - @Override - public void cleanUpDB() throws Exception { - TableHelper tPerson = new TableHelper(dbHelper, "PERSON"); - tPerson.setColumns( - "PERSON_ID", - "NAME", - "PERSON_TYPE", - "SALARY", - "CLIENT_COMPANY_ID", - "DEPARTMENT_ID"); - - // manually break circular deps - tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute(); - dbCleaner.clean(); - } - @Before public void setUp() { // TODO: use TableHelper to create test data http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java index 5a8068e..671fbb6 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLInheritanceIT.java @@ -18,6 +18,11 @@ ****************************************************************/ package org.apache.cayenne.access; +import static org.junit.Assert.assertEquals; + +import java.sql.Types; +import java.util.List; + import org.apache.cayenne.ObjectContext; import org.apache.cayenne.di.Inject; import org.apache.cayenne.query.EJBQLQuery; @@ -26,37 +31,15 @@ import org.apache.cayenne.test.jdbc.TableHelper; import org.apache.cayenne.testdo.inheritance_people.CustomerRepresentative; import org.apache.cayenne.testdo.inheritance_people.Employee; import org.apache.cayenne.testdo.inheritance_people.Manager; -import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.DBCleaner; -import org.apache.cayenne.unit.di.server.ServerCase; -import org.apache.cayenne.unit.di.server.UseServerRuntime; +import org.apache.cayenne.unit.di.server.PeopleProjectCase; import org.junit.Before; import org.junit.Test; -import java.sql.Types; -import java.util.List; - -import static org.junit.Assert.assertEquals; - -@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT) -public class DataContextEJBQLInheritanceIT extends ServerCase { +public class DataContextEJBQLInheritanceIT extends PeopleProjectCase { @Inject protected ObjectContext context; - @Inject - protected DBHelper dbHelper; - - @Inject - protected DBCleaner dbCleaner; - - @Override - public void cleanUpDB() throws Exception { - // manually break circular deps - dbHelper.update("PERSON").set("DEPARTMENT_ID", null, Types.INTEGER).execute(); - dbCleaner.clean(); - } - @Before public void setUp() throws Exception { TableHelper person = new TableHelper(dbHelper, "PERSON"); http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java index 6ac1c65..3602a05 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextQualifiedEntityIT.java @@ -19,37 +19,28 @@ package org.apache.cayenne.access; +import static org.junit.Assert.assertEquals; + +import java.sql.Types; +import java.util.List; + import org.apache.cayenne.ObjectContext; import org.apache.cayenne.di.Inject; import org.apache.cayenne.query.SelectQuery; -import org.apache.cayenne.test.jdbc.DBHelper; import org.apache.cayenne.test.jdbc.TableHelper; import org.apache.cayenne.testdo.inheritance_people.AbstractPerson; import org.apache.cayenne.testdo.inheritance_people.CustomerRepresentative; import org.apache.cayenne.testdo.inheritance_people.Employee; import org.apache.cayenne.testdo.inheritance_people.Manager; -import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.ServerCase; -import org.apache.cayenne.unit.di.server.UseServerRuntime; +import org.apache.cayenne.unit.di.server.PeopleProjectCase; import org.junit.Before; import org.junit.Test; -import java.sql.Types; -import java.util.List; - -import static org.junit.Assert.assertEquals; - -/** - */ -@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT) -public class DataContextQualifiedEntityIT extends ServerCase { +public class DataContextQualifiedEntityIT extends PeopleProjectCase { @Inject protected ObjectContext context; - @Inject - protected DBHelper dbHelper; - protected TableHelper tPerson; @Before http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java index fd0d9dc..c84572f 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/access/SingleTableInheritanceIT.java @@ -19,6 +19,15 @@ package org.apache.cayenne.access; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + +import java.sql.Types; +import java.util.Arrays; +import java.util.List; + import org.apache.cayenne.Cayenne; import org.apache.cayenne.di.Inject; import org.apache.cayenne.exp.ExpressionFactory; @@ -26,7 +35,6 @@ import org.apache.cayenne.query.PrefetchTreeNode; import org.apache.cayenne.query.SQLTemplate; import org.apache.cayenne.query.SelectQuery; import org.apache.cayenne.query.SortOrder; -import org.apache.cayenne.test.jdbc.DBHelper; import org.apache.cayenne.test.jdbc.TableHelper; import org.apache.cayenne.testdo.inheritance_people.AbstractPerson; import org.apache.cayenne.testdo.inheritance_people.Address; @@ -38,30 +46,11 @@ import org.apache.cayenne.testdo.inheritance_people.Manager; import org.apache.cayenne.testdo.inheritance_people.PersonNotes; import org.apache.cayenne.unit.di.DataChannelInterceptor; import org.apache.cayenne.unit.di.UnitTestClosure; -import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.DBCleaner; -import org.apache.cayenne.unit.di.server.ServerCase; -import org.apache.cayenne.unit.di.server.UseServerRuntime; +import org.apache.cayenne.unit.di.server.PeopleProjectCase; import org.junit.Before; import org.junit.Test; -import java.sql.Types; -import java.util.Arrays; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; - -@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT) -public class SingleTableInheritanceIT extends ServerCase { - - @Inject - private DBHelper dbHelper; - - @Inject - private DBCleaner dbCleaner; +public class SingleTableInheritanceIT extends PeopleProjectCase { @Inject private DataContext context; @@ -77,39 +66,21 @@ public class SingleTableInheritanceIT extends ServerCase { private TableHelper tClientCompany; private TableHelper tDepartment; - @Override - public void cleanUpDB() throws Exception { - tPerson = new TableHelper(dbHelper, "PERSON"); - tPerson.setColumns( - "PERSON_ID", - "NAME", - "PERSON_TYPE", - "SALARY", - "CLIENT_COMPANY_ID", - "DEPARTMENT_ID").setColumnTypes( - Types.INTEGER, - Types.VARCHAR, - Types.CHAR, - Types.FLOAT, - Types.INTEGER, - Types.INTEGER); - - // manually break circular deps - tPerson.update().set("DEPARTMENT_ID", null, Types.INTEGER).execute(); - dbCleaner.clean(); - } - @Before - public void setUp() { - tAddress = new TableHelper(dbHelper, "ADDRESS"); - tAddress.setColumns("ADDRESS_ID", "CITY", "PERSON_ID"); + public void setUp() { + tAddress = new TableHelper(dbHelper, "ADDRESS"); + tAddress.setColumns("ADDRESS_ID", "CITY", "PERSON_ID"); - tClientCompany = new TableHelper(dbHelper, "CLIENT_COMPANY"); - tClientCompany.setColumns("CLIENT_COMPANY_ID", "NAME"); + tClientCompany = new TableHelper(dbHelper, "CLIENT_COMPANY"); + tClientCompany.setColumns("CLIENT_COMPANY_ID", "NAME"); - tDepartment = new TableHelper(dbHelper, "DEPARTMENT"); - tDepartment.setColumns("DEPARTMENT_ID", "NAME"); - } + tDepartment = new TableHelper(dbHelper, "DEPARTMENT"); + tDepartment.setColumns("DEPARTMENT_ID", "NAME"); + + tPerson = new TableHelper(dbHelper, "PERSON").setColumns("PERSON_ID", "NAME", "PERSON_TYPE", "SALARY", + "CLIENT_COMPANY_ID", "DEPARTMENT_ID").setColumnTypes(Types.INTEGER, Types.VARCHAR, Types.CHAR, + Types.FLOAT, Types.INTEGER, Types.INTEGER); + } private void create2PersonDataSet() throws Exception { tPerson.insert(1, "E1", "EE", null, null, null); http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java index 770a57a..bcf485f 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/map/EntityResolverInheritanceIT.java @@ -19,19 +19,16 @@ package org.apache.cayenne.map; -import org.apache.cayenne.di.Inject; -import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.ServerCase; -import org.apache.cayenne.unit.di.server.UseServerRuntime; -import org.junit.Test; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; -@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT) -public class EntityResolverInheritanceIT extends ServerCase { +import org.apache.cayenne.di.Inject; +import org.apache.cayenne.unit.di.server.PeopleProjectCase; +import org.junit.Test; + +public class EntityResolverInheritanceIT extends PeopleProjectCase { @Inject private EntityResolver resolver; http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java index 2222404..b9754e9 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/query/SelectQueryPrefetchRouterActionQualifiedEntityIT.java @@ -19,6 +19,9 @@ package org.apache.cayenne.query; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; + import org.apache.cayenne.di.Inject; import org.apache.cayenne.exp.Expression; import org.apache.cayenne.exp.ExpressionFactory; @@ -27,16 +30,10 @@ import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.testdo.inheritance_people.Department; import org.apache.cayenne.testdo.inheritance_people.Employee; import org.apache.cayenne.testdo.inheritance_people.Manager; -import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.ServerCase; -import org.apache.cayenne.unit.di.server.UseServerRuntime; +import org.apache.cayenne.unit.di.server.PeopleProjectCase; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertSame; - -@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT) -public class SelectQueryPrefetchRouterActionQualifiedEntityIT extends ServerCase { +public class SelectQueryPrefetchRouterActionQualifiedEntityIT extends PeopleProjectCase { @Inject private EntityResolver resolver; http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/PeopleProjectCase.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/PeopleProjectCase.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/PeopleProjectCase.java new file mode 100644 index 0000000..a084b13 --- /dev/null +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/PeopleProjectCase.java @@ -0,0 +1,38 @@ +/***************************************************************** + * 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.cayenne.unit.di.server; + +import java.sql.Types; + +import org.apache.cayenne.di.Inject; +import org.apache.cayenne.test.jdbc.DBHelper; + +@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT) +public class PeopleProjectCase extends ServerCase { + + @Inject + protected DBHelper dbHelper; + + @Override + public void cleanUpDB() throws Exception { + // manually break circular deps + dbHelper.update("PERSON").set("DEPARTMENT_ID", null, Types.INTEGER).execute(); + super.cleanUpDB(); + } +} http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java index 29a2798..c34d59a 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/UseServerRuntime.java @@ -20,6 +20,7 @@ package org.apache.cayenne.unit.di.server; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @@ -31,6 +32,7 @@ import java.lang.annotation.Target; @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented +@Inherited public @interface UseServerRuntime { String value(); http://git-wip-us.apache.org/repos/asf/cayenne/blob/3d826479/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java index d79fe8d..c31ca91 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationInheritanceIT.java @@ -19,31 +19,26 @@ package org.apache.cayenne.util; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.sql.SQLException; + import org.apache.cayenne.PersistenceState; import org.apache.cayenne.access.DataContext; import org.apache.cayenne.di.Inject; import org.apache.cayenne.query.SelectQuery; -import org.apache.cayenne.test.jdbc.DBHelper; import org.apache.cayenne.testdo.inheritance_people.Department; import org.apache.cayenne.testdo.inheritance_people.Employee; import org.apache.cayenne.testdo.inheritance_people.Manager; import org.apache.cayenne.unit.di.DataChannelInterceptor; import org.apache.cayenne.unit.di.UnitTestClosure; -import org.apache.cayenne.unit.di.server.CayenneProjects; -import org.apache.cayenne.unit.di.server.ServerCase; -import org.apache.cayenne.unit.di.server.UseServerRuntime; -import org.junit.After; +import org.apache.cayenne.unit.di.server.PeopleProjectCase; import org.junit.Test; -import java.sql.SQLException; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT) -public class DeepMergeOperationInheritanceIT extends ServerCase { +public class DeepMergeOperationInheritanceIT extends PeopleProjectCase { @Inject private DataContext context; @@ -54,14 +49,6 @@ public class DeepMergeOperationInheritanceIT extends ServerCase { @Inject protected DataChannelInterceptor queryInterceptor; - @Inject - private DBHelper dbHelper; - - @After - public void tearDown() throws SQLException { - dbHelper.deleteAll("PERSON"); - } - @Test public void testDeepMergeExistingSubclass() {