Repository: cayenne Updated Branches: refs/heads/CAY-1946_1 67ac9ec0e -> 571a1370a
http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/CayenneProjects.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/CayenneProjects.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/CayenneProjects.java new file mode 100644 index 0000000..5daa3a7 --- /dev/null +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/CayenneProjects.java @@ -0,0 +1,79 @@ +/***************************************************************** + * 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; + +public class CayenneProjects { + + // known runtimes... unit tests may reuse these with @UseServerRuntime + // annotation or + // can define their own on the fly (TODO: how would that work with the + // global schema + // setup?) + public static final String BINARY_PK_PROJECT = "cayenne-binary-pk.xml"; + public static final String COMPOUND_PROJECT = "cayenne-compound.xml"; + public static final String DATE_TIME_PROJECT = "cayenne-date-time.xml"; + public static final String DELETE_RULES_PROJECT = "cayenne-delete-rules.xml"; + public static final String EMBEDDABLE_PROJECT = "cayenne-embeddable.xml"; + public static final String EMPTY_PROJECT = "cayenne-empty.xml"; + public static final String ENUM_PROJECT = "cayenne-enum.xml"; + public static final String EXTENDED_TYPE_PROJECT = "cayenne-extended-type.xml"; + public static final String GENERATED_PROJECT = "cayenne-generated.xml"; + public static final String GENERIC_PROJECT = "cayenne-generic.xml"; + public static final String INHERITANCE_PROJECT = "cayenne-inheritance.xml"; + public static final String INHERITANCE_SINGLE_TABLE1_PROJECT = "cayenne-inheritance-single-table1.xml"; + public static final String INHERITANCE_VERTICAL_PROJECT = "cayenne-inheritance-vertical.xml"; + public static final String LIFECYCLES_PROJECT = "cayenne-lifecycles.xml"; + public static final String LOB_PROJECT = "cayenne-lob.xml"; + public static final String LOCKING_PROJECT = "cayenne-locking.xml"; + public static final String MAP_TO_MANY_PROJECT = "cayenne-map-to-many.xml"; + public static final String MEANINGFUL_PK_PROJECT = "cayenne-meaningful-pk.xml"; + public static final String MISC_TYPES_PROJECT = "cayenne-misc-types.xml"; + public static final String MIXED_PERSISTENCE_STRATEGY_PROJECT = "cayenne-mixed-persistence-strategy.xml"; + public static final String MULTI_TIER_PROJECT = "cayenne-multi-tier.xml"; + public static final String MULTINODE_PROJECT = "cayenne-multinode.xml"; + public static final String NO_PK_PROJECT = "cayenne-no-pk.xml"; + public static final String NUMERIC_TYPES_PROJECT = "cayenne-numeric-types.xml"; + public static final String ONEWAY_PROJECT = "cayenne-oneway-rels.xml"; + public static final String PEOPLE_PROJECT = "cayenne-people.xml"; + public static final String PERSISTENT_PROJECT = "cayenne-persistent.xml"; + public static final String PRIMITIVE_PROJECT = "cayenne-primitive.xml"; + public static final String QUALIFIED_PROJECT = "cayenne-qualified.xml"; + public static final String QUOTED_IDENTIFIERS_PROJECT = "cayenne-quoted-identifiers.xml"; + public static final String REFLEXIVE_PROJECT = "cayenne-reflexive.xml"; + public static final String RELATIONSHIPS_PROJECT = "cayenne-relationships.xml"; + public static final String RELATIONSHIPS_ACTIVITY_PROJECT = "cayenne-relationships-activity.xml"; + public static final String RELATIONSHIPS_CHILD_MASTER_PROJECT = "cayenne-relationships-child-master.xml"; + public static final String RELATIONSHIPS_CLOB_PROJECT = "cayenne-relationships-clob.xml"; + public static final String RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT = "cayenne-relationships-collection-to-many.xml"; + public static final String RELATIONSHIPS_DELETE_RULES_PROJECT = "cayenne-relationships-delete-rules.xml"; + public static final String RELATIONSHIPS_FLATTENED_PROJECT = "cayenne-relationships-flattened.xml"; + public static final String RELATIONSHIPS_SET_TO_MANY_PROJECT = "cayenne-relationships-set-to-many.xml"; + public static final String RELATIONSHIPS_TO_MANY_FK_PROJECT = "cayenne-relationships-to-many-fk.xml"; + public static final String RELATIONSHIPS_TO_ONE_FK_PROJECT = "cayenne-relationships-to-one-fk.xml"; + public static final String RETURN_TYPES_PROJECT = "cayenne-return-types.xml"; + public static final String SOFT_DELETE_PROJECT = "cayenne-soft-delete.xml"; + public static final String SUS_PROJECT = "cayenne-sus.xml"; + public static final String TABLE_PRIMITIVES_PROJECT = "cayenne-table-primitives.xml"; + public static final String TESTMAP_PROJECT = "cayenne-testmap.xml"; + public static final String THINGS_PROJECT = "cayenne-things.xml"; + public static final String TOONE_PROJECT = "cayenne-toone.xml"; + public static final String UUID_PROJECT = "cayenne-uuid.xml"; + +} http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java new file mode 100644 index 0000000..d44ac87 --- /dev/null +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleaner.java @@ -0,0 +1,256 @@ +/***************************************************************** + * 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 org.apache.cayenne.di.Inject; +import org.apache.cayenne.unit.UnitDbAdapter; + +import java.sql.SQLException; + +public class DBCleaner { + + private FlavoredDBHelper dbHelper; + private String location; + + @Inject + private UnitDbAdapter accessStackAdapter; + + public DBCleaner(FlavoredDBHelper dbHelper, String location) { + this.dbHelper = dbHelper; + this.location = location; + } + + public void clean() throws SQLException { + if (location.equals(CayenneProjects.TESTMAP_PROJECT)) { + dbHelper.deleteAll("ARTGROUP"); + dbHelper.deleteAll("ARTIST"); + dbHelper.deleteAll("ARTIST_CT"); + dbHelper.deleteAll("ARTIST_EXHIBIT"); + dbHelper.deleteAll("ARTIST_GROUP"); + dbHelper.deleteAll("EXHIBIT"); + dbHelper.deleteAll("GALLERY"); + dbHelper.deleteAll("GENERATED_COLUMN"); + dbHelper.deleteAll("NULL_TEST"); + dbHelper.deleteAll("PAINTING"); + dbHelper.deleteAll("PAINTING1"); + dbHelper.deleteAll("PAINTING_INFO"); + } else if (location.equals(CayenneProjects.MULTI_TIER_PROJECT)) { + dbHelper.deleteAll("MT_JOIN45"); + dbHelper.deleteAll("MT_TABLE1"); + dbHelper.deleteAll("MT_TABLE2"); + dbHelper.deleteAll("MT_TABLE3"); + dbHelper.deleteAll("MT_TABLE4"); + dbHelper.deleteAll("MT_TABLE5"); + } else if (location.equals(CayenneProjects.COMPOUND_PROJECT)) { + dbHelper.deleteAll("CHAR_FK_TEST"); + dbHelper.deleteAll("CHAR_PK_TEST"); + dbHelper.deleteAll("COMPOUND_FK_TEST"); + dbHelper.deleteAll("COMPOUND_PK_TEST"); + } else if (location.equals(CayenneProjects.PEOPLE_PROJECT)) { + dbHelper.deleteAll("ADDRESS"); + dbHelper.deleteAll("CLIENT_COMPANY"); + dbHelper.deleteAll("DEPARTMENT"); + dbHelper.deleteAll("PERSON"); + dbHelper.deleteAll("PERSON_NOTES"); + } else if(location.equals(CayenneProjects.BINARY_PK_PROJECT)) { + dbHelper.deleteAll("BINARY_PK_TEST1"); + dbHelper.deleteAll("BINARY_PK_TEST2"); + } else if (location.equals(CayenneProjects.DATE_TIME_PROJECT)) { + dbHelper.deleteAll("CALENDAR_TEST"); + dbHelper.deleteAll("DATE_TEST"); + } else if (location.equals(CayenneProjects.DELETE_RULES_PROJECT)) { + dbHelper.deleteAll("DELETE_CASCADE"); + dbHelper.deleteAll("DELETE_DENY"); + dbHelper.deleteAll("DELETE_NULLIFY"); + dbHelper.deleteAll("DELETE_RULE"); + } else if (location.equals(CayenneProjects.EMBEDDABLE_PROJECT)) { + dbHelper.deleteAll("EMBED_ENTITY1"); + } else if (location.equals(CayenneProjects.EMPTY_PROJECT)) { + return; + } else if (location.equals(CayenneProjects.ENUM_PROJECT)) { + dbHelper.deleteAll("ENUM_ENTITY"); + } else if (location.equals(CayenneProjects.EXTENDED_TYPE_PROJECT)) { + dbHelper.deleteAll("EXTENDED_TYPE_TEST"); + } else if (location.equals(CayenneProjects.GENERATED_PROJECT)) { + dbHelper.deleteAll("GENERATED_COLUMN_COMP_KEY"); + dbHelper.deleteAll("GENERATED_COLUMN_COMP_M"); + dbHelper.deleteAll("GENERATED_COLUMN_DEP"); + dbHelper.deleteAll("GENERATED_COLUMN_TEST"); + dbHelper.deleteAll("GENERATED_COLUMN_TEST2"); + dbHelper.deleteAll("GENERATED_F1"); + dbHelper.deleteAll("GENERATED_F2"); + dbHelper.deleteAll("GENERATED_JOIN"); + } else if (location.equals(CayenneProjects.GENERIC_PROJECT)) { + dbHelper.deleteAll("GENERIC1"); + dbHelper.deleteAll("GENERIC2"); + } else if (location.equals(CayenneProjects.INHERITANCE_PROJECT)) { + dbHelper.deleteAll("BASE_ENTITY"); + dbHelper.deleteAll("DIRECT_TO_SUB_ENTITY"); + dbHelper.deleteAll("RELATED_ENTITY"); + } else if (location.equals(CayenneProjects.INHERITANCE_SINGLE_TABLE1_PROJECT)) { + dbHelper.deleteAll("GROUP_MEMBERS"); + dbHelper.deleteAll("GROUP_PROPERTIES"); + dbHelper.deleteAll("ROLES"); + dbHelper.deleteAll("USER_PROPERTIES"); + } else if (location.equals(CayenneProjects.INHERITANCE_VERTICAL_PROJECT)) { + dbHelper.deleteAll("IV1_ROOT"); + dbHelper.deleteAll("IV1_SUB1"); + dbHelper.deleteAll("IV2_ROOT"); + dbHelper.deleteAll("IV2_SUB1"); + dbHelper.deleteAll("IV2_X"); + dbHelper.deleteAll("IV_ROOT"); + dbHelper.deleteAll("IV_SUB1"); + dbHelper.deleteAll("IV_SUB1_SUB1"); + dbHelper.deleteAll("IV_SUB2"); + } else if (location.equals(CayenneProjects.LIFECYCLES_PROJECT)) { + dbHelper.deleteAll("LIFECYCLES"); + } else if (location.equals(CayenneProjects.LOB_PROJECT)) { + if (accessStackAdapter.supportsLobs()) { + dbHelper.deleteAll("BLOB_TEST"); + dbHelper.deleteAll("CLOB_TEST"); + } + dbHelper.deleteAll("CLOB_TEST_RELATION"); + dbHelper.deleteAll("TEST"); + } else if (location.equals(CayenneProjects.LOCKING_PROJECT)) { + dbHelper.deleteAll("LOCKING_HELPER"); + dbHelper.deleteAll("REL_LOCKING_TEST"); + dbHelper.deleteAll("SIMPLE_LOCKING_TEST"); + } else if (location.equals(CayenneProjects.MAP_TO_MANY_PROJECT)) { + dbHelper.deleteAll("ID_MAP_TO_MANY"); + dbHelper.deleteAll("ID_MAP_TO_MANY_TARGET"); + dbHelper.deleteAll("MAP_TO_MANY"); + dbHelper.deleteAll("MAP_TO_MANY_TARGET"); + } else if (location.equals(CayenneProjects.MEANINGFUL_PK_PROJECT)) { + dbHelper.deleteAll("MEANINGFUL_PK"); + dbHelper.deleteAll("MEANINGFUL_PK_DEP"); + dbHelper.deleteAll("MEANINGFUL_PK_TEST1"); + } else if (location.equals(CayenneProjects.MISC_TYPES_PROJECT)) { + dbHelper.deleteAll("ARRAYS_ENTITY"); + dbHelper.deleteAll("CHARACTER_ENTITY"); + if(accessStackAdapter.supportsLobs()) { + dbHelper.deleteAll("SERIALIZABLE_ENTITY"); + } + } else if (location.equals(CayenneProjects.MIXED_PERSISTENCE_STRATEGY_PROJECT)) { + dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY"); + dbHelper.deleteAll("MIXED_PERSISTENCE_STRATEGY2"); + } else if (location.equals(CayenneProjects.MULTINODE_PROJECT)) { + dbHelper.deleteAll("CROSSDB_M1E1"); + dbHelper.deleteAll("CROSSDB_M2E1"); + dbHelper.deleteAll("CROSSDB_M2E2"); + } else if (location.equals(CayenneProjects.NO_PK_PROJECT)) { + dbHelper.deleteAll("NO_PK_TEST"); + } else if (location.equals(CayenneProjects.NUMERIC_TYPES_PROJECT)) { + dbHelper.deleteAll("BIGDECIMAL_ENTITY"); + dbHelper.deleteAll("BIGINTEGER_ENTITY"); + dbHelper.deleteAll("BIT_TEST"); + dbHelper.deleteAll("BOOLEAN_TEST"); + dbHelper.deleteAll("DECIMAL_PK_TST"); + dbHelper.deleteAll("FLOAT_TEST"); + dbHelper.deleteAll("LONG_ENTITY"); + dbHelper.deleteAll("SMALLINT_TEST"); + dbHelper.deleteAll("TINYINT_TEST"); + } else if (location.equals(CayenneProjects.ONEWAY_PROJECT)) { + dbHelper.deleteAll("oneway_table1"); + dbHelper.deleteAll("oneway_table2"); + dbHelper.deleteAll("oneway_table3"); + dbHelper.deleteAll("oneway_table4"); + } else if (location.equals(CayenneProjects.PERSISTENT_PROJECT)) { + dbHelper.deleteAll("CONTINENT"); + dbHelper.deleteAll("COUNTRY"); + } else if (location.equals(CayenneProjects.PRIMITIVE_PROJECT)) { + dbHelper.deleteAll("PRIMITIVES_TEST"); + } else if (location.equals(CayenneProjects.QUALIFIED_PROJECT)) { + dbHelper.deleteAll("TEST_QUALIFIED1"); + dbHelper.deleteAll("TEST_QUALIFIED2"); + } else if (location.equals(CayenneProjects.QUOTED_IDENTIFIERS_PROJECT)) { + dbHelper.deleteAll("QUOTED_ADDRESS"); + dbHelper.deleteAll("quote Person"); + } else if (location.equals(CayenneProjects.REFLEXIVE_PROJECT)) { + dbHelper.deleteAll("REFLEXIVE"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_PROJECT)) { + dbHelper.deleteAll("FK_OF_DIFFERENT_TYPE"); + dbHelper.deleteAll("MEANINGFUL_FK"); + dbHelper.deleteAll("REFLEXIVE_AND_TO_ONE"); + dbHelper.deleteAll("RELATIONSHIP_HELPER"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_ACTIVITY_PROJECT)) { + dbHelper.deleteAll("ACTIVITY"); + dbHelper.deleteAll("RESULT"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_CHILD_MASTER_PROJECT)) { + dbHelper.deleteAll("CHILD"); + dbHelper.deleteAll("MASTER"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_CLOB_PROJECT)) { + dbHelper.deleteAll("CLOB_DETAIL"); + dbHelper.deleteAll("CLOB_MASTER"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT)) { + dbHelper.deleteAll("COLLECTION_TO_MANY"); + dbHelper.deleteAll("COLLECTION_TO_MANY_TARGET"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_DELETE_RULES_PROJECT)) { + dbHelper.deleteAll("DELETE_RULE_FLATA"); + dbHelper.deleteAll("DELETE_RULE_FLATB"); + dbHelper.deleteAll("DELETE_RULE_JOIN"); + dbHelper.deleteAll("DELETE_RULE_TEST1"); + dbHelper.deleteAll("DELETE_RULE_TEST2"); + dbHelper.deleteAll("DELETE_RULE_TEST3"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_FLATTENED_PROJECT)) { + dbHelper.deleteAll("COMPLEX_JOIN"); + dbHelper.deleteAll("FLATTENED_CIRCULAR"); + dbHelper.deleteAll("FLATTENED_CIRCULAR_JOIN"); + dbHelper.deleteAll("FLATTENED_TEST_1"); + dbHelper.deleteAll("FLATTENED_TEST_2"); + dbHelper.deleteAll("FLATTENED_TEST_3"); + dbHelper.deleteAll("FLATTENED_TEST_4"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_SET_TO_MANY_PROJECT)) { + dbHelper.deleteAll("SET_TO_MANY"); + dbHelper.deleteAll("SET_TO_MANY_TARGET"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_TO_MANY_FK_PROJECT)) { + dbHelper.deleteAll("TO_MANY_FKDEP"); + dbHelper.deleteAll("TO_MANY_FKROOT"); + dbHelper.deleteAll("TO_MANY_ROOT2"); + } else if (location.equals(CayenneProjects.RELATIONSHIPS_TO_ONE_FK_PROJECT)) { + dbHelper.deleteAll("TO_ONE_FK1"); + dbHelper.deleteAll("TO_ONE_FK2"); + } else if (location.equals(CayenneProjects.RETURN_TYPES_PROJECT)) { + if (accessStackAdapter.supportsLobs()) { + dbHelper.deleteAll("TYPES_MAPPING_LOBS_TEST1"); + dbHelper.deleteAll("TYPES_MAPPING_TEST2"); + } + dbHelper.deleteAll("TYPES_MAPPING_TEST1"); + } else if (location.equals(CayenneProjects.SOFT_DELETE_PROJECT)) { + dbHelper.deleteAll("SOFT_DELETE"); + } else if (location.equals(CayenneProjects.SUS_PROJECT)) { + return; + } else if (location.equals(CayenneProjects.TABLE_PRIMITIVES_PROJECT)) { + dbHelper.deleteAll("TABLE_PRIMITIVES"); + } else if (location.equals(CayenneProjects.THINGS_PROJECT)) { + dbHelper.deleteAll("BAG"); + dbHelper.deleteAll("BALL"); + dbHelper.deleteAll("BOX"); + dbHelper.deleteAll("BOX_INFO"); + dbHelper.deleteAll("BOX_THING"); + dbHelper.deleteAll("THING"); + } else if (location.equals(CayenneProjects.TOONE_PROJECT)) { + dbHelper.deleteAll("TOONE_DEP"); + dbHelper.deleteAll("TOONE_MASTER"); + } else if (location.equals(CayenneProjects.UUID_PROJECT)) { + dbHelper.deleteAll("UUID_PK_ENTITY"); + dbHelper.deleteAll("UUID_TEST"); + } + } +} http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java new file mode 100644 index 0000000..86b5e86 --- /dev/null +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/DBCleanerProvider.java @@ -0,0 +1,40 @@ +/***************************************************************** + * 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 org.apache.cayenne.ConfigurationException; +import org.apache.cayenne.di.Inject; +import org.apache.cayenne.di.Provider; +import org.apache.cayenne.test.jdbc.DBHelper; + +public class DBCleanerProvider implements Provider<DBCleaner> { + + @Inject + private DBHelper dbHelper; + + @Inject + protected Provider<ServerCaseProperties> propertiesProvider; + + @Override + public DBCleaner get() throws ConfigurationException { + return new DBCleaner((FlavoredDBHelper) dbHelper, propertiesProvider.get().getConfigurationLocation()); + } + +} http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java index 1b194ec..a497e0d 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/SchemaBuilder.java @@ -70,7 +70,7 @@ public class SchemaBuilder { private static String[] MAPS_REQUIRING_SCHEMA_SETUP = {"testmap.map.xml", "compound.map.xml", "misc-types.map.xml", "things.map.xml", "numeric-types.map.xml", "binary-pk.map.xml", "no-pk.map.xml", "lob.map.xml", "date-time.map.xml", "enum.map.xml", "extended-type.map.xml", "generated.map.xml", "mixed-persistence-strategy.map.xml", "people.map.xml", "primitive.map.xml", "inheritance.map.xml", - "locking.map.xml", "soft-delete.map.xml", "relationships.map.xml", "relationships-activity.map.xml", "relationships-delete-rules.map.xml", + "locking.map.xml", "soft-delete.map.xml", "empty.map.xml", "relationships.map.xml", "relationships-activity.map.xml", "relationships-delete-rules.map.xml", "relationships-collection-to-many.map.xml", "relationships-child-master.map.xml", "relationships-clob.map.xml", "relationships-flattened.map.xml", "relationships-set-to-many.map.xml", "relationships-to-many-fk.map.xml", "relationships-to-one-fk.map.xml", "return-types.map.xml", "uuid.map.xml", "multi-tier.map.xml", "persistent.map.xml", "reflexive.map.xml", "delete-rules.map.xml", "lifecycles.map.xml", http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java index 7ca8a79..d5b5871 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCase.java @@ -19,62 +19,18 @@ package org.apache.cayenne.unit.di.server; import org.apache.cayenne.di.DIBootstrap; +import org.apache.cayenne.di.Inject; import org.apache.cayenne.di.Injector; import org.apache.cayenne.di.spi.DefaultScope; import org.apache.cayenne.unit.di.DICase; public class ServerCase extends DICase { - // known runtimes... unit tests may reuse these with @UseServerRuntime - // annotation or - // can define their own on the fly (TODO: how would that work with the - // global schema - // setup?) - public static final String INHERITANCE_SINGLE_TABLE1_PROJECT = "cayenne-inheritance-single-table1.xml"; - public static final String INHERITANCE_VERTICAL_PROJECT = "cayenne-inheritance-vertical.xml"; - public static final String INHERITANCE_PROJECT = "cayenne-inheritance.xml"; - public static final String LOCKING_PROJECT = "cayenne-locking.xml"; - public static final String SOFT_DELETE_PROJECT = "cayenne-soft-delete.xml"; - public static final String QUOTED_IDENTIFIERS_PROJECT = "cayenne-quoted-identifiers.xml"; - public static final String PEOPLE_PROJECT = "cayenne-people.xml"; - public static final String RELATIONSHIPS_PROJECT = "cayenne-relationships.xml"; - public static final String RELATIONSHIPS_ACTIVITY_PROJECT = "cayenne-relationships-activity.xml"; - public static final String RELATIONSHIPS_DELETE_RULES_PROJECT = "cayenne-relationships-delete-rules.xml"; - public static final String RELATIONSHIPS_COLLECTION_TO_MANY_PROJECT = "cayenne-relationships-collection-to-many.xml"; - public static final String RELATIONSHIPS_CHILD_MASTER_PROJECT = "cayenne-relationships-child-master.xml"; - public static final String RELATIONSHIPS_CLOB_PROJECT = "cayenne-relationships-clob.xml"; - public static final String RELATIONSHIPS_FLATTENED_PROJECT = "cayenne-relationships-flattened.xml"; - public static final String RELATIONSHIPS_SET_TO_MANY_PROJECT = "cayenne-relationships-set-to-many.xml"; - public static final String RELATIONSHIPS_TO_MANY_FK_PROJECT = "cayenne-relationships-to-many-fk.xml"; - public static final String RELATIONSHIPS_TO_ONE_FK_PROJECT = "cayenne-relationships-to-one-fk.xml"; - public static final String MISC_TYPES_PROJECT = "cayenne-misc-types.xml"; - public static final String THINGS_PROJECT = "cayenne-things.xml"; - public static final String NUMERIC_TYPES_PROJECT = "cayenne-numeric-types.xml"; - public static final String BINARY_PK_PROJECT = "cayenne-binary-pk.xml"; - public static final String NO_PK_PROJECT = "cayenne-no-pk.xml"; - public static final String LOB_PROJECT = "cayenne-lob.xml"; - public static final String DATE_TIME_PROJECT = "cayenne-date-time.xml"; - public static final String ENUM_PROJECT = "cayenne-enum.xml"; - public static final String EXTENDED_TYPE_PROJECT = "cayenne-extended-type.xml"; - public static final String GENERATED_PROJECT = "cayenne-generated.xml"; - public static final String MEANINGFUL_PK_PROJECT = "cayenne-meaningful-pk.xml"; - public static final String MIXED_PERSISTENCE_STRATEGY_PROJECT = "cayenne-mixed-persistence-strategy.xml"; - public static final String PRIMITIVE_PROJECT = "cayenne-primitive.xml"; - public static final String RETURN_TYPES_PROJECT = "cayenne-return-types.xml"; - public static final String UUID_PROJECT = "cayenne-uuid.xml"; - public static final String COMPOUND_PROJECT = "cayenne-compound.xml"; - public static final String TESTMAP_PROJECT = "cayenne-testmap.xml"; - public static final String EMBEDDABLE_PROJECT = "cayenne-embeddable.xml"; - public static final String GENERIC_PROJECT = "cayenne-generic.xml"; - public static final String QUALIFIED_PROJECT = "cayenne-qualified.xml"; - public static final String MULTINODE_PROJECT = "cayenne-multinode.xml"; - public static final String ONEWAY_PROJECT = "cayenne-oneway-rels.xml"; - public static final String MULTI_TIER_PROJECT = "cayenne-multi-tier.xml"; - public static final String MAP_TO_MANY_PROJECT = "cayenne-map-to-many.xml"; - public static final String SUS_PROJECT = "cayenne-sus.xml"; - private static final Injector injector; + @Inject + private DBCleaner dbCleaner; + static { DefaultScope testScope = new DefaultScope(); injector = DIBootstrap.createInjector(new ServerCaseModule(testScope)); @@ -82,6 +38,11 @@ public class ServerCase extends DICase { } @Override + protected void setUpAfterInjection() throws Exception { + dbCleaner.clean(); + } + + @Override protected Injector getUnitTestInjector() { return injector; } http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java index 65f622e..4bf0bbb 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java @@ -18,9 +18,6 @@ ****************************************************************/ package org.apache.cayenne.unit.di.server; -import java.util.Calendar; -import java.util.GregorianCalendar; - import org.apache.cayenne.ObjectContext; import org.apache.cayenne.access.DataContext; import org.apache.cayenne.access.DataNode; @@ -102,6 +99,9 @@ import org.apache.cayenne.unit.di.DataChannelInterceptor; import org.apache.cayenne.unit.di.UnitTestLifecycleManager; import org.apache.cayenne.unit.util.SQLTemplateCustomizer; +import java.util.Calendar; +import java.util.GregorianCalendar; + public class ServerCaseModule implements Module { protected DefaultScope testScope; @@ -229,5 +229,7 @@ public class ServerCaseModule implements Module { binder.bind(DBHelper.class).toProvider(FlavoredDBHelperProvider.class).in( testScope); + binder.bind(DBCleaner.class).toProvider(DBCleanerProvider.class).in( + testScope); } } http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java index 64b6bda..993828b 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseSelfIT.java @@ -28,7 +28,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotSame; import static org.junit.Assert.assertSame; -@UseServerRuntime(ServerCase.TESTMAP_PROJECT) +@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) public class ServerCaseSelfIT extends ServerCase { @Inject @@ -44,7 +44,7 @@ public class ServerCaseSelfIT extends ServerCase { public void testSetup_TearDown_Runtime() throws Exception { assertNotNull(properties); - assertEquals(ServerCase.TESTMAP_PROJECT, properties.getConfigurationLocation()); + assertEquals(CayenneProjects.TESTMAP_PROJECT, properties.getConfigurationLocation()); ServerRuntime local = this.runtime; assertNotNull(local); http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java index f4d8b3f..2877c3c 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java @@ -28,8 +28,10 @@ import org.apache.cayenne.test.jdbc.DBHelper; import org.apache.cayenne.test.jdbc.TableHelper; import org.apache.cayenne.testdo.relationships_clob.ClobMaster; import org.apache.cayenne.unit.UnitDbAdapter; +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.Before; import org.junit.Test; import java.util.List; @@ -38,7 +40,7 @@ import static org.junit.Assert.assertEquals; /** */ -@UseServerRuntime(ServerCase.RELATIONSHIPS_CLOB_PROJECT) +@UseServerRuntime(CayenneProjects.RELATIONSHIPS_CLOB_PROJECT) public class CAY_115IT extends ServerCase { @Inject @@ -52,12 +54,9 @@ public class CAY_115IT extends ServerCase { protected TableHelper tClobMaster; protected TableHelper tClobDetail; - - @Override - protected void setUpAfterInjection() throws Exception { - dbHelper.deleteAll("CLOB_DETAIL"); - dbHelper.deleteAll("CLOB_MASTER"); - + + @Before + public void testSetUp() throws Exception { tClobMaster = new TableHelper(dbHelper, "CLOB_MASTER"); tClobMaster.setColumns("CLOB_MASTER_ID", "CLOB_COLUMN", "NAME"); http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java index 30d7d40..fb31bd2 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_191IT.java @@ -25,16 +25,16 @@ import org.apache.cayenne.di.Inject; import org.apache.cayenne.test.jdbc.DBHelper; import org.apache.cayenne.test.jdbc.TableHelper; import org.apache.cayenne.testdo.relationships.FkOfDifferentType; +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.Before; import org.junit.Test; -import java.sql.Types; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -@UseServerRuntime(ServerCase.RELATIONSHIPS_PROJECT) +@UseServerRuntime(CayenneProjects.RELATIONSHIPS_PROJECT) public class CAY_191IT extends ServerCase { @Inject @@ -45,14 +45,9 @@ public class CAY_191IT extends ServerCase { protected TableHelper tRelationshipHelper; protected TableHelper tFkOfDifferentType; - - @Override - protected void setUpAfterInjection() throws Exception { - dbHelper.deleteAll("FK_OF_DIFFERENT_TYPE"); - dbHelper.update("REFLEXIVE_AND_TO_ONE").set("PARENT_ID", null, Types.INTEGER).execute(); - dbHelper.deleteAll("REFLEXIVE_AND_TO_ONE"); - dbHelper.deleteAll("RELATIONSHIP_HELPER"); - + + @Before + public void testSetUp() throws Exception { tRelationshipHelper = new TableHelper(dbHelper, "RELATIONSHIP_HELPER"); tRelationshipHelper.setColumns("NAME", "RELATIONSHIP_HELPER_ID"); http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java index 2fca6b9..dcd6b6a 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/unit/jira/CAY_194IT.java @@ -27,8 +27,10 @@ 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.relationships.ReflexiveAndToOne; +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.Before; import org.junit.Test; import java.sql.Types; @@ -42,7 +44,7 @@ import static org.junit.Assert.assertSame; */ // TODO: this is really a qualifier translator general test... need to // find an appropriate place in unit tests.. -@UseServerRuntime(ServerCase.RELATIONSHIPS_PROJECT) +@UseServerRuntime(CayenneProjects.RELATIONSHIPS_PROJECT) public class CAY_194IT extends ServerCase { @Inject @@ -51,8 +53,8 @@ public class CAY_194IT extends ServerCase { @Inject private DBHelper dbHelper; - @Override - protected void setUpAfterInjection() throws Exception { + @Before + public void testSetUp() throws Exception { TableHelper tReflexive = new TableHelper(dbHelper, "REFLEXIVE_AND_TO_ONE"); tReflexive.setColumns("REFLEXIVE_AND_TO_ONE_ID", "PARENT_ID"); http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java index 91d2368..2e86640 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/util/DeepMergeOperationIT.java @@ -26,6 +26,7 @@ import org.apache.cayenne.di.Inject; import org.apache.cayenne.testdo.testmap.Artist; 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.Test; @@ -34,7 +35,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; -@UseServerRuntime(ServerCase.TESTMAP_PROJECT) +@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) public class DeepMergeOperationIT extends ServerCase { @Inject http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/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 bf95dab..4204412 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 @@ -28,6 +28,7 @@ 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.Test; @@ -37,7 +38,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -@UseServerRuntime(ServerCase.PEOPLE_PROJECT) +@UseServerRuntime(CayenneProjects.PEOPLE_PROJECT) public class DeepMergeOperationInheritanceIT extends ServerCase { @Inject http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java index 83c4f53..ec9b604 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/util/EntityMergeSupportIT.java @@ -25,7 +25,7 @@ import org.apache.cayenne.map.DbRelationship; import org.apache.cayenne.map.DeleteRule; import org.apache.cayenne.map.ObjEntity; import org.apache.cayenne.merge.MergeCase; -import org.apache.cayenne.unit.di.server.ServerCase; +import org.apache.cayenne.unit.di.server.CayenneProjects; import org.apache.cayenne.unit.di.server.UseServerRuntime; import org.junit.Test; @@ -37,7 +37,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; -@UseServerRuntime(ServerCase.TESTMAP_PROJECT) +@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) public class EntityMergeSupportIT extends MergeCase { @Test http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java b/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java index b29f0ad..0f7ec48 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/util/ShallowMergeOperationIT.java @@ -33,15 +33,17 @@ import org.apache.cayenne.testdo.testmap.Artist; import org.apache.cayenne.testdo.testmap.Painting; 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.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertSame; -@UseServerRuntime(ServerCase.TESTMAP_PROJECT) +@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) public class ShallowMergeOperationIT extends ServerCase { @Inject @@ -58,14 +60,8 @@ public class ShallowMergeOperationIT extends ServerCase { private TableHelper tArtist; - @Override - protected void setUpAfterInjection() throws Exception { - dbHelper.deleteAll("PAINTING_INFO"); - dbHelper.deleteAll("PAINTING"); - dbHelper.deleteAll("ARTIST_EXHIBIT"); - dbHelper.deleteAll("ARTIST_GROUP"); - dbHelper.deleteAll("ARTIST"); - + @Before + public void testSetUp() throws Exception { tArtist = new TableHelper(dbHelper, "ARTIST"); tArtist.setColumns("ARTIST_ID", "ARTIST_NAME"); http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java b/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java index b8945fe..69461c8 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/velocity/BindDirectiveIT.java @@ -30,8 +30,8 @@ import org.apache.cayenne.log.JdbcEventLogger; import org.apache.cayenne.query.CapsStrategy; import org.apache.cayenne.query.SQLTemplate; import org.apache.cayenne.query.SelectQuery; -import org.apache.cayenne.test.jdbc.DBHelper; import org.apache.cayenne.testdo.testmap.Artist; +import org.apache.cayenne.unit.di.server.CayenneProjects; import org.apache.cayenne.unit.di.server.ServerCase; import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory; import org.apache.cayenne.unit.di.server.UseServerRuntime; @@ -55,7 +55,7 @@ import static org.junit.Assert.assertNull; /** * Tests BindDirective for passed null parameters and for not passed parameters */ -@UseServerRuntime(ServerCase.TESTMAP_PROJECT) +@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) public class BindDirectiveIT extends ServerCase { @Inject @@ -68,23 +68,11 @@ public class BindDirectiveIT extends ServerCase { private ObjectContext context; @Inject - private DBHelper dbHelper; - - @Inject private JdbcEventLogger logger; @Inject private DataNode node; - @Override - protected void setUpAfterInjection() throws Exception { - dbHelper.deleteAll("PAINTING_INFO"); - dbHelper.deleteAll("PAINTING"); - dbHelper.deleteAll("ARTIST_EXHIBIT"); - dbHelper.deleteAll("ARTIST_GROUP"); - dbHelper.deleteAll("ARTIST"); - } - @Test public void testBindTimestamp() throws Exception { Map<String, Object> parameters = new HashMap<String, Object>(); http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java b/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java index 449e33f..1b5fdd0 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java @@ -28,8 +28,8 @@ import org.apache.cayenne.di.Inject; import org.apache.cayenne.query.CapsStrategy; import org.apache.cayenne.query.SQLTemplate; import org.apache.cayenne.query.SelectQuery; -import org.apache.cayenne.test.jdbc.DBHelper; import org.apache.cayenne.testdo.testmap.Artist; +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; @@ -47,33 +47,18 @@ import static org.junit.Assert.assertNotNull; * Test for Result directive to check if we could use ResultDirective * optionally. */ -@UseServerRuntime(ServerCase.TESTMAP_PROJECT) +@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT) public class ResultDirectiveIT extends ServerCase { @Inject private ServerRuntime runtime; @Inject - private DBHelper dbHelper; - - @Inject private JdbcAdapter dbAdapter; @Inject private DataNode node; - @Override - protected void setUpAfterInjection() throws Exception { - dbHelper.deleteAll("PAINTING_INFO"); - dbHelper.deleteAll("PAINTING"); - dbHelper.deleteAll("PAINTING1"); - dbHelper.deleteAll("ARTIST_EXHIBIT"); - dbHelper.deleteAll("ARTIST_GROUP"); - dbHelper.deleteAll("ARTIST"); - dbHelper.deleteAll("EXHIBIT"); - dbHelper.deleteAll("GALLERY"); - } - @Test public void testWithoutResultDirective() throws Exception { String sql = "SELECT ARTIST_ID, ARTIST_NAME FROM ARTIST"; http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/resources/cayenne-empty.xml ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/resources/cayenne-empty.xml b/cayenne-server/src/test/resources/cayenne-empty.xml new file mode 100644 index 0000000..00778a5 --- /dev/null +++ b/cayenne-server/src/test/resources/cayenne-empty.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<domain project-version="7"> + <map name="empty"/> +</domain> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/resources/empty.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/resources/empty.map.xml b/cayenne-server/src/test/resources/empty.map.xml new file mode 100644 index 0000000..20ffbc78 --- /dev/null +++ b/cayenne-server/src/test/resources/empty.map.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd" + project-version="7"> + <db-entity name="EMPTY"> + <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> + </db-entity> +</data-map> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cayenne/blob/368b4ac5/cayenne-server/src/test/resources/small-testmap.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/resources/small-testmap.map.xml b/cayenne-server/src/test/resources/small-testmap.map.xml deleted file mode 100644 index 486256e..0000000 --- a/cayenne-server/src/test/resources/small-testmap.map.xml +++ /dev/null @@ -1,225 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap http://cayenne.apache.org/schema/7/modelMap.xsd" - project-version="7"> - <property name="defaultPackage" value="org.apache.cayenne.testdo.testmap"/> - <property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/> - <property name="clientSupported" value="true"/> - <property name="defaultClientPackage" value="test.client"/> - <property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/> - <procedure name="cayenne_tst_out_proc"> - <procedure-parameter name="in_param" type="INTEGER" direction="in"/> - <procedure-parameter name="out_param" type="INTEGER" direction="out"/> - </procedure> - <procedure name="cayenne_tst_select_proc"> - <procedure-parameter name="aName" type="VARCHAR" length="254" direction="in"/> - <procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/> - </procedure> - <procedure name="cayenne_tst_upd_proc"> - <procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/> - </procedure> - <procedure name="cayenne_tst_upd_proc2"> - </procedure> - <db-entity name="ARRAYS_ENTITY"> - <db-attribute name="BYTE_ARRAY" type="VARBINARY" length="200"/> - <db-attribute name="BYTE_WRAPPER_ARRAY" type="VARBINARY" length="200"/> - <db-attribute name="CHAR_ARRAY" type="VARCHAR" length="200"/> - <db-attribute name="CHAR_WRAPPER_ARRAY" type="VARCHAR" length="200"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="ARTGROUP"> - <db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/> - <db-attribute name="PARENT_GROUP_ID" type="INTEGER"/> - </db-entity> - <db-entity name="ARTIST"> - <db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" length="254"/> - <db-attribute name="DATE_OF_BIRTH" type="DATE"/> - </db-entity> - <db-entity name="ARTIST_CT"> - <db-attribute name="ARTIST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" length="254"/> - <db-attribute name="DATE_OF_BIRTH" type="DATE"/> - </db-entity> - <db-entity name="ARTIST_EXHIBIT"> - <db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="EXHIBIT_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="ARTIST_GROUP"> - <db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="CHARACTER_ENTITY"> - <db-attribute name="CHARACTER_FIELD" type="CHAR" length="1"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="DATE_TEST"> - <db-attribute name="DATE_COLUMN" type="DATE"/> - <db-attribute name="DATE_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="TIMESTAMP_COLUMN" type="TIMESTAMP"/> - <db-attribute name="TIME_COLUMN" type="TIME"/> - </db-entity> - <db-entity name="ENUM_ENTITY"> - <db-attribute name="ENUM_ATTRIBUTE" type="VARCHAR" length="250"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="EXHIBIT"> - <db-attribute name="CLOSING_DATE" type="TIMESTAMP" isMandatory="true"/> - <db-attribute name="EXHIBIT_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="GALLERY_ID" type="INTEGER" isMandatory="true"/> - <db-attribute name="OPENING_DATE" type="TIMESTAMP" isMandatory="true"/> - </db-entity> - <db-entity name="FLOAT_TEST"> - <db-attribute name="FLOAT_COL" type="FLOAT"/> - <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - </db-entity> - <db-entity name="GALLERY"> - <db-attribute name="GALLERY_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="GALLERY_NAME" type="VARCHAR" isMandatory="true" length="100"/> - </db-entity> - <db-entity name="PAINTING"> - <db-attribute name="ARTIST_ID" type="BIGINT"/> - <db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" scale="2"/> - <db-attribute name="GALLERY_ID" type="INTEGER"/> - <db-attribute name="PAINTING_DESCRIPTION" type="VARCHAR" length="255"/> - <db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="PAINTING_TITLE" type="VARCHAR" isMandatory="true" length="255"/> - </db-entity> - <db-entity name="PAINTING1"> - <db-attribute name="ARTIST_ID" type="BIGINT"/> - <db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" scale="2"/> - <db-attribute name="GALLERY_ID" type="INTEGER"/> - <db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="PAINTING_TITLE" type="VARCHAR" isMandatory="true" length="255"/> - </db-entity> - <db-entity name="PAINTING_INFO"> - <db-attribute name="IMAGE_BLOB" type="LONGVARBINARY"/> - <db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/> - <db-attribute name="TEXT_REVIEW" type="LONGVARCHAR"/> - </db-entity> - <obj-entity name="ArraysEntity" className="org.apache.cayenne.testdo.misc_types.ArraysEntity" dbEntityName="ARRAYS_ENTITY"> - <obj-attribute name="byteArray" type="byte[]" db-attribute-path="BYTE_ARRAY"/> - <obj-attribute name="byteWrapperArray" type="java.lang.Byte[]" db-attribute-path="BYTE_WRAPPER_ARRAY"/> - <obj-attribute name="charArray" type="char[]" db-attribute-path="CHAR_ARRAY"/> - <obj-attribute name="charWrapperArray" type="java.lang.Character[]" db-attribute-path="CHAR_WRAPPER_ARRAY"/> - </obj-entity> - <obj-entity name="ArtGroup" className="org.apache.cayenne.testdo.testmap.ArtGroup" dbEntityName="ARTGROUP"> - <obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/> - </obj-entity> - <obj-entity name="Artist" className="org.apache.cayenne.testdo.testmap.Artist" dbEntityName="ARTIST"> - <obj-attribute name="artistName" type="java.lang.String" db-attribute-path="ARTIST_NAME"/> - <obj-attribute name="dateOfBirth" type="java.util.Date" db-attribute-path="DATE_OF_BIRTH"/> - </obj-entity> - <obj-entity name="ArtistExhibit" className="org.apache.cayenne.testdo.testmap.ArtistExhibit" dbEntityName="ARTIST_EXHIBIT"> - </obj-entity> - <obj-entity name="CharacterEntity" className="org.apache.cayenne.testdo.misc_types.CharacterEntity" dbEntityName="CHARACTER_ENTITY"> - <obj-attribute name="characterField" type="java.lang.Character" db-attribute-path="CHARACTER_FIELD"/> - </obj-entity> - <obj-entity name="DateTestEntity" className="org.apache.cayenne.testdo.date_time.DateTestEntity" dbEntityName="DATE_TEST"> - <obj-attribute name="dateColumn" type="java.util.Date" db-attribute-path="DATE_COLUMN"/> - <obj-attribute name="timeColumn" type="java.util.Date" db-attribute-path="TIME_COLUMN"/> - <obj-attribute name="timestampColumn" type="java.util.Date" db-attribute-path="TIMESTAMP_COLUMN"/> - </obj-entity> - <obj-entity name="EnumEntity" className="org.apache.cayenne.testdo.enum_test.EnumEntity" dbEntityName="ENUM_ENTITY"> - <obj-attribute name="enumAttribute" type="org.apache.cayenne.testdo.enum_test.Enum1" db-attribute-path="ENUM_ATTRIBUTE"/> - </obj-entity> - <obj-entity name="Exhibit" className="org.apache.cayenne.testdo.testmap.Exhibit" dbEntityName="EXHIBIT"> - <obj-attribute name="closingDate" type="java.util.Date" db-attribute-path="CLOSING_DATE"/> - <obj-attribute name="openingDate" type="java.util.Date" db-attribute-path="OPENING_DATE"/> - </obj-entity> - <obj-entity name="Gallery" className="org.apache.cayenne.testdo.testmap.Gallery" dbEntityName="GALLERY"> - <obj-attribute name="galleryName" type="java.lang.String" db-attribute-path="GALLERY_NAME"/> - </obj-entity> - <obj-entity name="Painting" className="org.apache.cayenne.testdo.testmap.Painting" dbEntityName="PAINTING" superClassName="org.apache.cayenne.testdo.testmap.ArtDataObject"> - <obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/> - <obj-attribute name="paintingDescription" type="java.lang.String" db-attribute-path="PAINTING_DESCRIPTION"/> - <obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/> - </obj-entity> - <obj-entity name="Painting1" className="org.apache.cayenne.testdo.testmap.Painting1" dbEntityName="PAINTING1"> - <obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/> - <obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/> - </obj-entity> - <obj-entity name="PaintingInfo" className="org.apache.cayenne.testdo.testmap.PaintingInfo" dbEntityName="PAINTING_INFO"> - <obj-attribute name="imageBlob" type="byte[]" db-attribute-path="IMAGE_BLOB"/> - <obj-attribute name="textReview" type="java.lang.String" db-attribute-path="TEXT_REVIEW"/> - </obj-entity> - <obj-entity name="SubPainting" className="org.apache.cayenne.testdo.testmap.SubPainting" dbEntityName="PAINTING"> - <obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/> - </obj-entity> - <db-relationship name="artistGroupArray" source="ARTGROUP" target="ARTIST_GROUP" toMany="true"> - <db-attribute-pair source="GROUP_ID" target="GROUP_ID"/> - </db-relationship> - <db-relationship name="toChildGroups" source="ARTGROUP" target="ARTGROUP" toMany="true"> - <db-attribute-pair source="GROUP_ID" target="PARENT_GROUP_ID"/> - </db-relationship> - <db-relationship name="toParentGroup" source="ARTGROUP" target="ARTGROUP" toMany="false"> - <db-attribute-pair source="PARENT_GROUP_ID" target="GROUP_ID"/> - </db-relationship> - <db-relationship name="artistExhibitArray" source="ARTIST" target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="artistGroupArray" source="ARTIST" target="ARTIST_GROUP" toMany="true"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="paintingArray" source="ARTIST" target="PAINTING" toMany="true"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="toArtist" source="ARTIST_EXHIBIT" target="ARTIST" toMany="false"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="toExhibit" source="ARTIST_EXHIBIT" target="EXHIBIT" toMany="false"> - <db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/> - </db-relationship> - <db-relationship name="toArtist" source="ARTIST_GROUP" target="ARTIST" toMany="false"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="toGroup" source="ARTIST_GROUP" target="ARTGROUP" toMany="false"> - <db-attribute-pair source="GROUP_ID" target="GROUP_ID"/> - </db-relationship> - <db-relationship name="artistExhibitArray" source="EXHIBIT" target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true"> - <db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/> - </db-relationship> - <db-relationship name="toGallery" source="EXHIBIT" target="GALLERY" toMany="false"> - <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/> - </db-relationship> - <db-relationship name="exhibitArray" source="GALLERY" target="EXHIBIT" toMany="true"> - <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/> - </db-relationship> - <db-relationship name="paintingArray" source="GALLERY" target="PAINTING" toMany="true"> - <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/> - </db-relationship> - <db-relationship name="toArtist" source="PAINTING" target="ARTIST" toMany="false"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="toGallery" source="PAINTING" target="GALLERY" toMany="false"> - <db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/> - </db-relationship> - <db-relationship name="toPaintingInfo" source="PAINTING" target="PAINTING_INFO" toDependentPK="true" toMany="false"> - <db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/> - </db-relationship> - <db-relationship name="toArtist" source="PAINTING1" target="ARTIST" toMany="false"> - <db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/> - </db-relationship> - <db-relationship name="painting" source="PAINTING_INFO" target="PAINTING" toMany="false"> - <db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/> - </db-relationship> - <obj-relationship name="artistArray" source="ArtGroup" target="Artist" deleteRule="Nullify" db-relationship-path="artistGroupArray.toArtist"/> - <obj-relationship name="childGroupsArray" source="ArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toChildGroups"/> - <obj-relationship name="toParentGroup" source="ArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toParentGroup"/> - <obj-relationship name="artistExhibitArray" source="Artist" target="ArtistExhibit" deleteRule="Cascade" db-relationship-path="artistExhibitArray"/> - <obj-relationship name="groupArray" source="Artist" target="ArtGroup" deleteRule="Cascade" db-relationship-path="artistGroupArray.toGroup"/> - <obj-relationship name="paintingArray" source="Artist" target="Painting" deleteRule="Cascade" db-relationship-path="paintingArray"/> - <obj-relationship name="toArtist" source="ArtistExhibit" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/> - <obj-relationship name="toExhibit" source="ArtistExhibit" target="Exhibit" deleteRule="Nullify" db-relationship-path="toExhibit"/> - <obj-relationship name="artistExhibitArray" source="Exhibit" target="ArtistExhibit" deleteRule="Cascade" db-relationship-path="artistExhibitArray"/> - <obj-relationship name="toGallery" source="Exhibit" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/> - <obj-relationship name="exhibitArray" source="Gallery" target="Exhibit" deleteRule="Cascade" db-relationship-path="exhibitArray"/> - <obj-relationship name="paintingArray" source="Gallery" target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/> - <obj-relationship name="toArtist" source="Painting" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/> - <obj-relationship name="toGallery" source="Painting" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/> - <obj-relationship name="toPaintingInfo" source="Painting" target="PaintingInfo" deleteRule="Cascade" db-relationship-path="toPaintingInfo"/> - <obj-relationship name="toArtist" source="Painting1" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/> - <obj-relationship name="painting" source="PaintingInfo" target="Painting" deleteRule="Nullify" db-relationship-path="painting"/> -</data-map>