You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/11/14 18:47:47 UTC

[46/50] [abbrv] cayenne git commit: Refactor TestMap Project

Refactor TestMap Project


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/535ecb88
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/535ecb88
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/535ecb88

Branch: refs/heads/CAY-1946
Commit: 535ecb881e04a644f585aaa3adbcd39556c3cdac
Parents: d7178a8
Author: Savva Kolbechev <s....@gmail.com>
Authored: Wed Nov 12 18:02:46 2014 +0300
Committer: Savva Kolbechev <s....@gmail.com>
Committed: Wed Nov 12 18:02:46 2014 +0300

----------------------------------------------------------------------
 .../org/apache/cayenne/CayenneCompoundIT.java   | 149 ++++
 .../test/java/org/apache/cayenne/CayenneIT.java | 117 +--
 .../org/apache/cayenne/CompoundPkChangeIT.java  |   4 +-
 .../cayenne/access/DataContextBinaryPKIT.java   |   6 +-
 .../cayenne/access/DataContextBlobIT.java       |   4 +-
 .../cayenne/access/DataContextCharPKIT.java     |   4 +-
 .../cayenne/access/DataContextCharTypeIT.java   |   4 +-
 .../cayenne/access/DataContextClobIT.java       |   4 +-
 .../access/DataContextCompoundRelIT.java        |   6 +-
 ...ataContextDisjointByIdPrefetch_ExtrasIT.java |  17 +-
 ...extEJBQLDateTimeFunctionalExpressionsIT.java | 102 +++
 .../access/DataContextEJBQLDeleteIT.java        |  35 -
 .../access/DataContextEJBQLDeletePKIT.java      |  64 ++
 .../DataContextEJBQLFunctionalExpressions.java  | 430 ---------
 ...DataContextEJBQLFunctionalExpressionsIT.java | 295 +++++++
 .../DataContextEJBQLNumericalFunctionalIT.java  | 133 +++
 .../access/DataContextEJBQLQueryCompoundIT.java | 129 +++
 .../cayenne/access/DataContextEJBQLQueryIT.java |  93 --
 .../DataContextEJBQLUpdateCompoundIT.java       |  87 ++
 .../access/DataContextEJBQLUpdateIT.java        |  89 --
 .../DataContextEntityWithMeaningfulPKIT.java    |   6 +-
 .../DataContextExtendedTypeOperationsIT.java    |   6 +-
 .../cayenne/access/DataContextNoPkIT.java       |   4 +-
 .../access/DataContextPrefetchExtrasIT.java     |  10 +-
 .../access/DataContextProcedureQueryIT.java     |   8 +-
 .../DataContextSQLTemplateCompoundIT.java       | 105 +++
 .../access/DataContextSQLTemplateIT.java        |  82 +-
 .../apache/cayenne/access/DateTimeTypesIT.java  |   7 +-
 .../apache/cayenne/access/DbGeneratorIT.java    |   4 +-
 .../java/org/apache/cayenne/access/EnumIT.java  |   6 +-
 .../cayenne/access/IdentityColumnsIT.java       |  16 +-
 .../org/apache/cayenne/access/MiscTypesIT.java  |   8 +-
 .../apache/cayenne/access/NumericTypesIT.java   |  20 +-
 .../cayenne/access/PrimitiveAttributesIT.java   |   4 +-
 .../cayenne/access/ReturnTypesMappingIT.java    |  32 +-
 .../java/org/apache/cayenne/access/UUIDIT.java  |   6 +-
 .../access/jdbc/BatchActionGeneratedIT.java     |  70 ++
 .../cayenne/access/jdbc/BatchActionIT.java      |  11 -
 .../cayenne/access/jdbc/SelectActionIT.java     |   6 +-
 .../ServerRuntimeBuilder_InAction_IT.java       |   2 +-
 .../cayenne/dba/oracle/OracleAdapterIT.java     |   6 +-
 .../cayenne/exp/BooleanExpressionTest.java      |   2 +-
 .../apache/cayenne/map/MapLoaderLoadTest.java   |   6 +-
 .../org/apache/cayenne/map/ObjEntityIT.java     |   2 +-
 .../org/apache/cayenne/merge/MergeCase.java     |   2 +-
 .../org/apache/cayenne/query/EJBQLQueryIT.java  |  29 -
 .../cayenne/query/EJBQLQueryNumericIT.java      |  57 ++
 .../org/apache/cayenne/query/SQLSelectIT.java   |   2 +-
 .../org/apache/cayenne/query/SQLTemplateIT.java |   8 +-
 .../apache/cayenne/query/SelectQueryClobIT.java | 108 +++
 .../org/apache/cayenne/query/SelectQueryIT.java | 189 ----
 .../cayenne/query/SelectQueryReturnTypesIT.java | 149 ++++
 .../reflect/MixedPersistenceStrategyIT.java     |   6 +-
 .../cayenne/testdo/binary_pk/BinaryPKTest1.java |  28 +
 .../cayenne/testdo/binary_pk/BinaryPKTest2.java |  28 +
 .../testdo/binary_pk/auto/_BinaryPKTest1.java   |  48 +
 .../testdo/binary_pk/auto/_BinaryPKTest2.java   |  43 +
 .../testdo/compound/CharFkTestEntity.java       |  28 +
 .../testdo/compound/CharPkTestEntity.java       |  28 +
 .../testdo/compound/CompoundFkTestEntity.java   |  28 +
 .../testdo/compound/CompoundPkTestEntity.java   |  28 +
 .../testdo/compound/auto/_CharFkTestEntity.java |  43 +
 .../testdo/compound/auto/_CharPkTestEntity.java |  58 ++
 .../compound/auto/_CompoundFkTestEntity.java    |  43 +
 .../compound/auto/_CompoundPkTestEntity.java    |  69 ++
 .../testdo/date_time/CalendarEntity.java        |  28 +
 .../testdo/date_time/DateTestEntity.java        |  28 +
 .../testdo/date_time/auto/_CalendarEntity.java  |  32 +
 .../testdo/date_time/auto/_DateTestEntity.java  |  52 ++
 .../apache/cayenne/testdo/enum_test/Enum1.java  |  23 +
 .../cayenne/testdo/enum_test/EnumEntity.java    |  25 +
 .../testdo/enum_test/auto/_EnumEntity.java      |  31 +
 .../extended_type/ExtendedTypeEntity.java       |  25 +
 .../cayenne/testdo/extended_type/StringET1.java |  35 +
 .../extended_type/StringET1ExtendedType.java    |  62 ++
 .../extended_type/auto/_ExtendedTypeEntity.java |  31 +
 .../generated/GeneratedColumnCompKey.java       |  28 +
 .../generated/GeneratedColumnCompMaster.java    |  28 +
 .../testdo/generated/GeneratedColumnDep.java    |  28 +
 .../testdo/generated/GeneratedColumnTest2.java  |  28 +
 .../generated/GeneratedColumnTestEntity.java    |  28 +
 .../cayenne/testdo/generated/GeneratedF1.java   |  25 +
 .../cayenne/testdo/generated/GeneratedF2.java   |  25 +
 .../generated/auto/_GeneratedColumnCompKey.java |  45 +
 .../auto/_GeneratedColumnCompMaster.java        |  48 +
 .../generated/auto/_GeneratedColumnDep.java     |  43 +
 .../generated/auto/_GeneratedColumnTest2.java   |  30 +
 .../auto/_GeneratedColumnTestEntity.java        |  43 +
 .../testdo/generated/auto/_GeneratedF1.java     |  38 +
 .../testdo/generated/auto/_GeneratedF2.java     |  38 +
 .../horizontalinherit/AbstractSuperEntity.java  |  25 -
 .../testdo/horizontalinherit/SubEntity1.java    |  25 -
 .../testdo/horizontalinherit/SubEntity2.java    |  25 -
 .../testdo/horizontalinherit/SubEntity3.java    |  25 -
 .../auto/_AbstractSuperEntity.java              |  32 -
 .../horizontalinherit/auto/_SubEntity1.java     |  24 -
 .../horizontalinherit/auto/_SubEntity2.java     |  25 -
 .../horizontalinherit/auto/_SubEntity3.java     |  25 -
 .../AbstractSuperEntity.java                    |  25 +
 .../inheritance_horizontal/SubEntity1.java      |  25 +
 .../inheritance_horizontal/SubEntity2.java      |  25 +
 .../inheritance_horizontal/SubEntity3.java      |  25 +
 .../auto/_AbstractSuperEntity.java              |  32 +
 .../auto/_SubEntity1.java                       |  24 +
 .../auto/_SubEntity2.java                       |  25 +
 .../auto/_SubEntity3.java                       |  25 +
 .../cayenne/testdo/lob/BlobTestEntity.java      |  28 +
 .../cayenne/testdo/lob/ClobTestEntity.java      |  28 +
 .../cayenne/testdo/lob/ClobTestRelation.java    |  25 +
 .../testdo/lob/auto/_BlobTestEntity.java        |  30 +
 .../testdo/lob/auto/_ClobTestEntity.java        |  48 +
 .../testdo/lob/auto/_ClobTestRelation.java      |  53 ++
 .../testdo/meaningful_pk/MeaningfulPKDep.java   |  26 +
 .../testdo/meaningful_pk/MeaningfulPKTest1.java |  26 +
 .../meaningful_pk/auto/_MeaningfulPKDep.java    |  43 +
 .../meaningful_pk/auto/_MeaningfulPKTest1.java  |  58 ++
 .../cayenne/testdo/misc_types/ArraysEntity.java |  27 +
 .../testdo/misc_types/CharacterEntity.java      |  28 +
 .../testdo/misc_types/SerializableEntity.java   |  28 +
 .../testdo/misc_types/auto/_ArraysEntity.java   |  60 ++
 .../misc_types/auto/_CharacterEntity.java       |  30 +
 .../misc_types/auto/_SerializableEntity.java    |  31 +
 .../MixedPersistenceStrategy.java               |  35 +
 .../MixedPersistenceStrategy2.java              |  25 +
 .../auto/_MixedPersistenceStrategy.java         |  58 ++
 .../auto/_MixedPersistenceStrategy2.java        |  43 +
 .../cayenne/testdo/no_pk/NoPkTestEntity.java    |  28 +
 .../testdo/no_pk/auto/_NoPkTestEntity.java      |  29 +
 .../testdo/numeric_types/BigDecimalEntity.java  |  27 +
 .../testdo/numeric_types/BigIntegerEntity.java  |  27 +
 .../numeric_types/BitNumberTestEntity.java      |  28 +
 .../testdo/numeric_types/BitTestEntity.java     |  28 +
 .../testdo/numeric_types/BooleanTestEntity.java |  28 +
 .../testdo/numeric_types/DecimalPKTest1.java    |  28 +
 .../numeric_types/DecimalPKTestEntity.java      |  28 +
 .../testdo/numeric_types/LongEntity.java        |  28 +
 .../numeric_types/SmallintTestEntity.java       |  28 +
 .../testdo/numeric_types/TinyintTestEntity.java |  28 +
 .../numeric_types/auto/_BigDecimalEntity.java   |  32 +
 .../numeric_types/auto/_BigIntegerEntity.java   |  32 +
 .../auto/_BitNumberTestEntity.java              |  30 +
 .../numeric_types/auto/_BitTestEntity.java      |  30 +
 .../numeric_types/auto/_BooleanTestEntity.java  |  30 +
 .../numeric_types/auto/_DecimalPKTest1.java     |  40 +
 .../auto/_DecimalPKTestEntity.java              |  42 +
 .../testdo/numeric_types/auto/_LongEntity.java  |  30 +
 .../numeric_types/auto/_SmallintTestEntity.java |  30 +
 .../numeric_types/auto/_TinyintTestEntity.java  |  30 +
 .../testdo/primitive/PrimitivesTestEntity.java  |  25 +
 .../primitive/auto/_PrimitivesTestEntity.java   |  42 +
 .../testdo/return_types/ReturnTypesMap1.java    |  25 +
 .../testdo/return_types/ReturnTypesMap2.java    |  25 +
 .../return_types/ReturnTypesMapLobs1.java       |  25 +
 .../return_types/auto/_ReturnTypesMap1.java     | 193 +++++
 .../return_types/auto/_ReturnTypesMap2.java     |  60 ++
 .../return_types/auto/_ReturnTypesMapLobs1.java |  30 +
 .../cayenne/testdo/testmap/ArraysEntity.java    |  27 -
 .../org/apache/cayenne/testdo/testmap/Bag.java  |  27 -
 .../org/apache/cayenne/testdo/testmap/Ball.java |  27 -
 .../testdo/testmap/BigDecimalEntity.java        |  27 -
 .../testdo/testmap/BigIntegerEntity.java        |  27 -
 .../cayenne/testdo/testmap/BinaryPKTest1.java   |  28 -
 .../cayenne/testdo/testmap/BinaryPKTest2.java   |  28 -
 .../testdo/testmap/BitNumberTestEntity.java     |  28 -
 .../cayenne/testdo/testmap/BitTestEntity.java   |  28 -
 .../cayenne/testdo/testmap/BlobTestEntity.java  |  28 -
 .../testdo/testmap/BooleanTestEntity.java       |  28 -
 .../org/apache/cayenne/testdo/testmap/Box.java  |  25 -
 .../apache/cayenne/testdo/testmap/BoxInfo.java  |  25 -
 .../cayenne/testdo/testmap/CalendarEntity.java  |  28 -
 .../testdo/testmap/CharFkTestEntity.java        |  28 -
 .../testdo/testmap/CharPkTestEntity.java        |  28 -
 .../cayenne/testdo/testmap/CharacterEntity.java |  28 -
 .../cayenne/testdo/testmap/ClobTestEntity.java  |  28 -
 .../testdo/testmap/ClobTestRelation.java        |  25 -
 .../testdo/testmap/CompoundFkTestEntity.java    |  28 -
 .../testdo/testmap/CompoundPkTestEntity.java    |  28 -
 .../cayenne/testdo/testmap/DateTestEntity.java  |  28 -
 .../cayenne/testdo/testmap/DecimalPKTest1.java  |  26 -
 .../testdo/testmap/DecimalPKTestEntity.java     |  28 -
 .../apache/cayenne/testdo/testmap/Enum1.java    |  23 -
 .../cayenne/testdo/testmap/EnumEntity.java      |  25 -
 .../testdo/testmap/ExtendedTypeEntity.java      |  25 -
 .../testdo/testmap/GeneratedColumnCompKey.java  |  28 -
 .../testmap/GeneratedColumnCompMaster.java      |  28 -
 .../testdo/testmap/GeneratedColumnDep.java      |  28 -
 .../testdo/testmap/GeneratedColumnTest2.java    |  28 -
 .../testmap/GeneratedColumnTestEntity.java      |  28 -
 .../cayenne/testdo/testmap/GeneratedF1.java     |  25 -
 .../cayenne/testdo/testmap/GeneratedF2.java     |  25 -
 .../cayenne/testdo/testmap/LongEntity.java      |  28 -
 .../cayenne/testdo/testmap/MeaningfulPKDep.java |  24 -
 .../testdo/testmap/MeaningfulPKTest1.java       |  24 -
 .../testmap/MixedPersistenceStrategy.java       |  35 -
 .../testmap/MixedPersistenceStrategy2.java      |  25 -
 .../cayenne/testdo/testmap/NoPkTestEntity.java  |  28 -
 .../testdo/testmap/PrimitivesTestEntity.java    |  25 -
 .../cayenne/testdo/testmap/ReturnTypesMap1.java |  25 -
 .../cayenne/testdo/testmap/ReturnTypesMap2.java |  25 -
 .../testdo/testmap/ReturnTypesMapLobs1.java     |  25 -
 .../testdo/testmap/SerializableEntity.java      |  28 -
 .../testdo/testmap/SmallintTestEntity.java      |  28 -
 .../cayenne/testdo/testmap/StringET1.java       |  35 -
 .../testdo/testmap/StringET1ExtendedType.java   |  62 --
 .../apache/cayenne/testdo/testmap/Thing.java    |  25 -
 .../testdo/testmap/TinyintTestEntity.java       |  28 -
 .../cayenne/testdo/testmap/UuidPkEntity.java    |  25 -
 .../cayenne/testdo/testmap/UuidTestEntity.java  |  25 -
 .../testdo/testmap/auto/_ArraysEntity.java      |  60 --
 .../cayenne/testdo/testmap/auto/_Bag.java       |  68 --
 .../cayenne/testdo/testmap/auto/_Ball.java      |  66 --
 .../testdo/testmap/auto/_BigDecimalEntity.java  |  32 -
 .../testdo/testmap/auto/_BigIntegerEntity.java  |  32 -
 .../testdo/testmap/auto/_BinaryPKTest1.java     |  48 -
 .../testdo/testmap/auto/_BinaryPKTest2.java     |  43 -
 .../testmap/auto/_BitNumberTestEntity.java      |  30 -
 .../testdo/testmap/auto/_BitTestEntity.java     |  30 -
 .../testdo/testmap/auto/_BlobTestEntity.java    |  30 -
 .../testdo/testmap/auto/_BooleanTestEntity.java |  30 -
 .../cayenne/testdo/testmap/auto/_Box.java       |  84 --
 .../cayenne/testdo/testmap/auto/_BoxInfo.java   |  43 -
 .../testdo/testmap/auto/_CalendarEntity.java    |  32 -
 .../testdo/testmap/auto/_CharFkTestEntity.java  |  43 -
 .../testdo/testmap/auto/_CharPkTestEntity.java  |  58 --
 .../testdo/testmap/auto/_CharacterEntity.java   |  30 -
 .../testdo/testmap/auto/_ClobTestEntity.java    |  48 -
 .../testdo/testmap/auto/_ClobTestRelation.java  |  53 --
 .../testmap/auto/_CompoundFkTestEntity.java     |  43 -
 .../testmap/auto/_CompoundPkTestEntity.java     |  69 --
 .../testdo/testmap/auto/_DateTestEntity.java    |  52 --
 .../testdo/testmap/auto/_DecimalPKTest1.java    |  40 -
 .../testmap/auto/_DecimalPKTestEntity.java      |  42 -
 .../testdo/testmap/auto/_EnumEntity.java        |  31 -
 .../testmap/auto/_ExtendedTypeEntity.java       |  31 -
 .../testmap/auto/_GeneratedColumnCompKey.java   |  45 -
 .../auto/_GeneratedColumnCompMaster.java        |  48 -
 .../testmap/auto/_GeneratedColumnDep.java       |  43 -
 .../testmap/auto/_GeneratedColumnTest2.java     |  30 -
 .../auto/_GeneratedColumnTestEntity.java        |  43 -
 .../testdo/testmap/auto/_GeneratedF1.java       |  38 -
 .../testdo/testmap/auto/_GeneratedF2.java       |  38 -
 .../testdo/testmap/auto/_LongEntity.java        |  30 -
 .../testdo/testmap/auto/_MeaningfulPKDep.java   |  43 -
 .../testdo/testmap/auto/_MeaningfulPKTest1.java |  58 --
 .../testmap/auto/_MixedPersistenceStrategy.java |  58 --
 .../auto/_MixedPersistenceStrategy2.java        |  43 -
 .../testdo/testmap/auto/_NoPkTestEntity.java    |  29 -
 .../testmap/auto/_PrimitivesTestEntity.java     |  42 -
 .../testdo/testmap/auto/_ReturnTypesMap1.java   | 193 -----
 .../testdo/testmap/auto/_ReturnTypesMap2.java   |  60 --
 .../testmap/auto/_ReturnTypesMapLobs1.java      |  30 -
 .../testmap/auto/_SerializableEntity.java       |  31 -
 .../testmap/auto/_SmallintTestEntity.java       |  30 -
 .../cayenne/testdo/testmap/auto/_Thing.java     |  65 --
 .../testdo/testmap/auto/_TinyintTestEntity.java |  30 -
 .../testdo/testmap/auto/_UuidPkEntity.java      |  32 -
 .../testdo/testmap/auto/_UuidTestEntity.java    |  32 -
 .../org/apache/cayenne/testdo/things/Bag.java   |  27 +
 .../org/apache/cayenne/testdo/things/Ball.java  |  27 +
 .../org/apache/cayenne/testdo/things/Box.java   |  25 +
 .../apache/cayenne/testdo/things/BoxInfo.java   |  25 +
 .../org/apache/cayenne/testdo/things/Thing.java |  25 +
 .../apache/cayenne/testdo/things/auto/_Bag.java |  68 ++
 .../cayenne/testdo/things/auto/_Ball.java       |  66 ++
 .../apache/cayenne/testdo/things/auto/_Box.java |  84 ++
 .../cayenne/testdo/things/auto/_BoxInfo.java    |  43 +
 .../cayenne/testdo/things/auto/_Thing.java      |  65 ++
 .../cayenne/testdo/uuid/UuidPkEntity.java       |  25 +
 .../cayenne/testdo/uuid/UuidTestEntity.java     |  25 +
 .../cayenne/testdo/uuid/auto/_UuidPkEntity.java |  32 +
 .../testdo/uuid/auto/_UuidTestEntity.java       |  32 +
 .../cayenne/unit/HSQLDBUnitDbAdapter.java       |   6 +-
 .../apache/cayenne/unit/MySQLUnitDbAdapter.java |  12 +-
 .../cayenne/unit/OracleUnitDbAdapter.java       |   2 +-
 .../cayenne/unit/PostgresUnitDbAdapter.java     |   8 +-
 .../cayenne/unit/SybaseUnitDbAdapter.java       |  14 +-
 .../cayenne/unit/di/server/SchemaBuilder.java   |   7 +-
 .../cayenne/unit/di/server/ServerCase.java      |  16 +
 .../cayenne/velocity/ResultDirectiveIT.java     |   2 +-
 .../src/test/resources/binary-pk.map.xml        |  34 +
 .../src/test/resources/cayenne-binary-pk.xml    |   4 +
 .../src/test/resources/cayenne-compound.xml     |   4 +
 .../src/test/resources/cayenne-date-time.xml    |   4 +
 .../src/test/resources/cayenne-enum.xml         |   4 +
 .../test/resources/cayenne-extended-type.xml    |   4 +
 .../src/test/resources/cayenne-generated.xml    |   4 +
 .../src/test/resources/cayenne-lob.xml          |   4 +
 .../src/test/resources/cayenne-misc-types.xml   |   4 +
 .../cayenne-mixed-persistence-strategy.xml      |   4 +
 .../src/test/resources/cayenne-no-pk.xml        |   4 +
 .../test/resources/cayenne-numeric-types.xml    |   4 +
 .../src/test/resources/cayenne-primitive.xml    |   4 +
 .../src/test/resources/cayenne-return-types.xml |   4 +
 .../src/test/resources/cayenne-testmap.xml      |   2 +-
 .../src/test/resources/cayenne-things.xml       |   4 +
 .../src/test/resources/cayenne-uuid.xml         |   4 +
 .../src/test/resources/compound.map.xml         |  64 ++
 .../src/test/resources/date-time.map.xml        |  34 +
 cayenne-server/src/test/resources/enum.map.xml  |  18 +
 .../src/test/resources/extended-type.map.xml    |  18 +
 .../src/test/resources/generated.map.xml        |  93 ++
 cayenne-server/src/test/resources/lob.map.xml   |  46 +
 .../src/test/resources/meaningful-pk.map.xml    |  24 +
 .../src/test/resources/misc-types.map.xml       |  38 +
 .../mixed-persistence-strategy.map.xml          |  36 +
 cayenne-server/src/test/resources/no-pk.map.xml |  17 +
 .../src/test/resources/numeric-types.map.xml    |  79 ++
 .../src/test/resources/primitive.map.xml        |  20 +
 .../src/test/resources/return-types.map.xml     |  84 ++
 .../src/test/resources/small-testmap.map.xml    |  10 +-
 .../src/test/resources/testmap.map.xml          | 302 +++++++
 .../src/test/resources/things.map.xml           | 110 +++
 .../src/test/resources/tstmap.map.xml           | 868 -------------------
 cayenne-server/src/test/resources/uuid.map.xml  |  24 +
 .../src/test/resources/testmap.map.xml          |  88 +-
 .../src/test/resources/testmap-client.map.xml   |  88 +-
 .../src/test/resources/testmap.map.xml          |  88 +-
 317 files changed, 6744 insertions(+), 6133 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
new file mode 100644
index 0000000..0a0fa92
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneCompoundIT.java
@@ -0,0 +1,149 @@
+package org.apache.cayenne;
+
+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.compound.CharPkTestEntity;
+import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
+public class CayenneCompoundIT extends ServerCase {
+
+    @Inject
+    private ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    protected TableHelper tCompoundPKTest;
+    protected TableHelper tCharPKTest;
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("COMPOUND_FK_TEST");
+        dbHelper.deleteAll("COMPOUND_PK_TEST");
+        dbHelper.deleteAll("CHAR_PK_TEST");
+
+        tCompoundPKTest = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
+        tCompoundPKTest.setColumns("KEY1", "KEY2", "NAME");
+
+        tCharPKTest = new TableHelper(dbHelper, "CHAR_PK_TEST");
+        tCharPKTest.setColumns("PK_COL", "OTHER_COL");
+    }
+
+    private void createOneCompoundPK() throws Exception {
+        tCompoundPKTest.insert("PK1", "PK2", "BBB");
+    }
+
+    private void createOneCharPK() throws Exception {
+        tCharPKTest.insert("CPK", "AAAA");
+    }
+
+    @Test
+    public void testObjectForPKEntityMapCompound() throws Exception {
+        createOneCompoundPK();
+
+        Map<String, Object> pk = new HashMap<String, Object>();
+        pk.put(CompoundPkTestEntity.KEY1_PK_COLUMN, "PK1");
+        pk.put(CompoundPkTestEntity.KEY2_PK_COLUMN, "PK2");
+        Object object = Cayenne.objectForPK(context, CompoundPkTestEntity.class, pk);
+
+        assertNotNull(object);
+        assertTrue(object instanceof CompoundPkTestEntity);
+        assertEquals("BBB", ((CompoundPkTestEntity) object).getName());
+    }
+
+    @Test
+    public void testCompoundPKForObject() throws Exception {
+        createOneCompoundPK();
+
+        List<?> objects = context
+                .performQuery(new SelectQuery(CompoundPkTestEntity.class));
+        assertEquals(1, objects.size());
+        DataObject object = (DataObject) objects.get(0);
+
+        Map<String, Object> pk = Cayenne.compoundPKForObject(object);
+        assertNotNull(pk);
+        assertEquals(2, pk.size());
+        assertEquals("PK1", pk.get(CompoundPkTestEntity.KEY1_PK_COLUMN));
+        assertEquals("PK2", pk.get(CompoundPkTestEntity.KEY2_PK_COLUMN));
+    }
+
+    @Test
+    public void testIntPKForObjectFailureForCompound() throws Exception {
+        createOneCompoundPK();
+
+        List<?> objects = context
+                .performQuery(new SelectQuery(CompoundPkTestEntity.class));
+        assertEquals(1, objects.size());
+        DataObject object = (DataObject) objects.get(0);
+
+        try {
+            Cayenne.intPKForObject(object);
+            fail("intPKForObject must fail for compound key");
+        }
+        catch (CayenneRuntimeException ex) {
+            // expected
+        }
+    }
+
+    @Test
+    public void testIntPKForObjectFailureForNonNumeric() throws Exception {
+        createOneCharPK();
+
+        List<?> objects = context.performQuery(new SelectQuery(CharPkTestEntity.class));
+        assertEquals(1, objects.size());
+        DataObject object = (DataObject) objects.get(0);
+
+        try {
+            Cayenne.intPKForObject(object);
+            fail("intPKForObject must fail for non-numeric key");
+        }
+        catch (CayenneRuntimeException ex) {
+
+        }
+    }
+
+    @Test
+    public void testPKForObjectFailureForCompound() throws Exception {
+        createOneCompoundPK();
+
+        List<?> objects = context
+                .performQuery(new SelectQuery(CompoundPkTestEntity.class));
+        assertEquals(1, objects.size());
+        DataObject object = (DataObject) objects.get(0);
+
+        try {
+            Cayenne.pkForObject(object);
+            fail("pkForObject must fail for compound key");
+        }
+        catch (CayenneRuntimeException ex) {
+
+        }
+    }
+
+    @Test
+    public void testIntPKForObjectNonNumeric() throws Exception {
+        createOneCharPK();
+
+        List<?> objects = context.performQuery(new SelectQuery(CharPkTestEntity.class));
+        assertEquals(1, objects.size());
+        DataObject object = (DataObject) objects.get(0);
+
+        assertEquals("CPK", Cayenne.pkForObject(object));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
index d2ac438..008bb52 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CayenneIT.java
@@ -33,15 +33,12 @@ 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.testmap.Artist;
-import org.apache.cayenne.testdo.testmap.CharPkTestEntity;
-import org.apache.cayenne.testdo.testmap.CompoundPkTestEntity;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -50,7 +47,6 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 @UseServerRuntime(ServerCase.TESTMAP_PROJECT)
 public class CayenneIT extends ServerCase {
@@ -63,8 +59,6 @@ public class CayenneIT extends ServerCase {
 
     protected TableHelper tArtist;
     protected TableHelper tPainting;
-    protected TableHelper tCompoundPKTest;
-    protected TableHelper tCharPKTest;
 
     @Override
     protected void setUpAfterInjection() throws Exception {
@@ -73,9 +67,6 @@ public class CayenneIT extends ServerCase {
         dbHelper.deleteAll("ARTIST_EXHIBIT");
         dbHelper.deleteAll("ARTIST_GROUP");
         dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("COMPOUND_FK_TEST");
-        dbHelper.deleteAll("COMPOUND_PK_TEST");
-        dbHelper.deleteAll("CHAR_PK_TEST");
 
         tArtist = new TableHelper(dbHelper, "ARTIST");
         tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
@@ -83,19 +74,6 @@ public class CayenneIT extends ServerCase {
         tPainting = new TableHelper(dbHelper, "PAINTING");
         tPainting.setColumns("PAINTING_ID", "ARTIST_ID", "PAINTING_TITLE");
 
-        tCompoundPKTest = new TableHelper(dbHelper, "COMPOUND_PK_TEST");
-        tCompoundPKTest.setColumns("KEY1", "KEY2", "NAME");
-
-        tCharPKTest = new TableHelper(dbHelper, "CHAR_PK_TEST");
-        tCharPKTest.setColumns("PK_COL", "OTHER_COL");
-    }
-
-    private void createOneCompoundPK() throws Exception {
-        tCompoundPKTest.insert("PK1", "PK2", "BBB");
-    }
-
-    private void createOneCharPK() throws Exception {
-        tCharPKTest.insert("CPK", "AAAA");
     }
 
     private void createOneArtist() throws Exception {
@@ -133,7 +111,7 @@ public class CayenneIT extends ServerCase {
 
         String sql = "SELECT count(1) AS X FROM ARTIST";
 
-        DataMap map = context.getEntityResolver().getDataMap("tstmap");
+        DataMap map = context.getEntityResolver().getDataMap("testmap");
         SQLTemplate query = new SQLTemplate(map, sql, false);
         query.setTemplate(
                 FrontBaseAdapter.class.getName(),
@@ -286,89 +264,6 @@ public class CayenneIT extends ServerCase {
     }
 
     @Test
-    public void testObjectForPKEntityMapCompound() throws Exception {
-        createOneCompoundPK();
-
-        Map<String, Object> pk = new HashMap<String, Object>();
-        pk.put(CompoundPkTestEntity.KEY1_PK_COLUMN, "PK1");
-        pk.put(CompoundPkTestEntity.KEY2_PK_COLUMN, "PK2");
-        Object object = Cayenne.objectForPK(context, CompoundPkTestEntity.class, pk);
-
-        assertNotNull(object);
-        assertTrue(object instanceof CompoundPkTestEntity);
-        assertEquals("BBB", ((CompoundPkTestEntity) object).getName());
-    }
-
-    @Test
-    public void testCompoundPKForObject() throws Exception {
-        createOneCompoundPK();
-
-        List<?> objects = context
-                .performQuery(new SelectQuery(CompoundPkTestEntity.class));
-        assertEquals(1, objects.size());
-        DataObject object = (DataObject) objects.get(0);
-
-        Map<String, Object> pk = Cayenne.compoundPKForObject(object);
-        assertNotNull(pk);
-        assertEquals(2, pk.size());
-        assertEquals("PK1", pk.get(CompoundPkTestEntity.KEY1_PK_COLUMN));
-        assertEquals("PK2", pk.get(CompoundPkTestEntity.KEY2_PK_COLUMN));
-    }
-
-    @Test
-    public void testIntPKForObjectFailureForCompound() throws Exception {
-        createOneCompoundPK();
-
-        List<?> objects = context
-                .performQuery(new SelectQuery(CompoundPkTestEntity.class));
-        assertEquals(1, objects.size());
-        DataObject object = (DataObject) objects.get(0);
-
-        try {
-            Cayenne.intPKForObject(object);
-            fail("intPKForObject must fail for compound key");
-        }
-        catch (CayenneRuntimeException ex) {
-            // expected
-        }
-    }
-
-    @Test
-    public void testIntPKForObjectFailureForNonNumeric() throws Exception {
-        createOneCharPK();
-
-        List<?> objects = context.performQuery(new SelectQuery(CharPkTestEntity.class));
-        assertEquals(1, objects.size());
-        DataObject object = (DataObject) objects.get(0);
-
-        try {
-            Cayenne.intPKForObject(object);
-            fail("intPKForObject must fail for non-numeric key");
-        }
-        catch (CayenneRuntimeException ex) {
-
-        }
-    }
-
-    @Test
-    public void testPKForObjectFailureForCompound() throws Exception {
-        createOneCompoundPK();
-
-        List<?> objects = context
-                .performQuery(new SelectQuery(CompoundPkTestEntity.class));
-        assertEquals(1, objects.size());
-        DataObject object = (DataObject) objects.get(0);
-
-        try {
-            Cayenne.pkForObject(object);
-            fail("pkForObject must fail for compound key");
-        }
-        catch (CayenneRuntimeException ex) {
-
-        }
-    }
-
-    @Test
     public void testIntPKForObject() throws Exception {
         createOneArtist();
 
@@ -390,14 +285,4 @@ public class CayenneIT extends ServerCase {
         assertEquals(new Long(33002), Cayenne.pkForObject(object));
     }
 
-    @Test
-    public void testIntPKForObjectNonNumeric() throws Exception {
-        createOneCharPK();
-
-        List<?> objects = context.performQuery(new SelectQuery(CharPkTestEntity.class));
-        assertEquals(1, objects.size());
-        DataObject object = (DataObject) objects.get(0);
-
-        assertEquals("CPK", Cayenne.pkForObject(object));
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java b/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java
index f0035b0..dcdaa83 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/CompoundPkChangeIT.java
@@ -22,14 +22,14 @@ import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.ObjectIdQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.testmap.CompoundPkTestEntity;
+import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
 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;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
 public class CompoundPkChangeIT extends ServerCase {
 
     private static final String key1v1 = "-key1-v1-";

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
index de99905..8dd8202 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
@@ -23,8 +23,8 @@ import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.testmap.BinaryPKTest1;
-import org.apache.cayenne.testdo.testmap.BinaryPKTest2;
+import org.apache.cayenne.testdo.binary_pk.BinaryPKTest1;
+import org.apache.cayenne.testdo.binary_pk.BinaryPKTest2;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -33,7 +33,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(ServerCase.BINARY_PK_PROJECT)
 public class DataContextBinaryPKIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
index 6552b73..c482bd8 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
@@ -23,7 +23,7 @@ import org.apache.cayenne.access.types.ByteArrayTypeTest;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.testmap.BlobTestEntity;
+import org.apache.cayenne.testdo.lob.BlobTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -34,7 +34,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(ServerCase.LOB_PROJECT)
 public class DataContextBlobIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java
index 569b216..8d37950 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharPKIT.java
@@ -23,7 +23,7 @@ import org.apache.cayenne.DataRow;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.testmap.CharPkTestEntity;
+import org.apache.cayenne.testdo.compound.CharPkTestEntity;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -33,7 +33,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
 public class DataContextCharPKIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
index 9c3779a..2b35330 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
@@ -24,7 +24,7 @@ import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.testmap.ReturnTypesMap1;
+import org.apache.cayenne.testdo.return_types.ReturnTypesMap1;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -34,7 +34,7 @@ import java.util.List;
 
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(ServerCase.RETURN_TYPES_PROJECT)
 public class DataContextCharTypeIT extends ServerCase {
     
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
index 4cd56eb..68e79bd 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
@@ -22,7 +22,7 @@ package org.apache.cayenne.access;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.testmap.ClobTestEntity;
+import org.apache.cayenne.testdo.lob.ClobTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
@@ -33,7 +33,7 @@ import java.util.List;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(ServerCase.LOB_PROJECT)
 public class DataContextClobIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
index c9f4262..9c5932f 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextCompoundRelIT.java
@@ -24,8 +24,8 @@ import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.testmap.CompoundFkTestEntity;
-import org.apache.cayenne.testdo.testmap.CompoundPkTestEntity;
+import org.apache.cayenne.testdo.compound.CompoundFkTestEntity;
+import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
@@ -37,7 +37,7 @@ import static org.junit.Assert.assertEquals;
 /**
  * Testing relationships with compound keys.
  */
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(ServerCase.COMPOUND_PROJECT)
 public class DataContextCompoundRelIT extends ServerCase {
 
     @Inject

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
index daa9acd..2d43bf5 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextDisjointByIdPrefetch_ExtrasIT.java
@@ -28,11 +28,11 @@ import org.apache.cayenne.query.PrefetchTreeNode;
 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.testmap.Bag;
-import org.apache.cayenne.testdo.testmap.Ball;
-import org.apache.cayenne.testdo.testmap.Box;
-import org.apache.cayenne.testdo.testmap.BoxInfo;
-import org.apache.cayenne.testdo.testmap.Thing;
+import org.apache.cayenne.testdo.things.Bag;
+import org.apache.cayenne.testdo.things.Ball;
+import org.apache.cayenne.testdo.things.Box;
+import org.apache.cayenne.testdo.things.BoxInfo;
+import org.apache.cayenne.testdo.things.Thing;
 import org.apache.cayenne.unit.di.DataChannelInterceptor;
 import org.apache.cayenne.unit.di.UnitTestClosure;
 import org.apache.cayenne.unit.di.server.ServerCase;
@@ -50,7 +50,7 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+@UseServerRuntime(ServerCase.THINGS_PROJECT)
 public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
 
     @Inject
@@ -65,11 +65,6 @@ public class DataContextDisjointByIdPrefetch_ExtrasIT extends ServerCase {
     @Inject
     protected DataChannelInterceptor queryInterceptor;
 
-    protected TableHelper tBag;
-    protected TableHelper tBox;
-    protected TableHelper tBoxInfo;
-    protected TableHelper tBall;
-    protected TableHelper tThing;
     protected TableHelper tBoxThing;
 
     @Override

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
new file mode 100644
index 0000000..f42f730
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
@@ -0,0 +1,102 @@
+package org.apache.cayenne.access;
+
+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.testdo.date_time.DateTestEntity;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+
+import java.util.Calendar;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+@UseServerRuntime(ServerCase.DATE_TIME_PROJECT)
+public class DataContextEJBQLDateTimeFunctionalExpressionsIT extends ServerCase {
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    @Inject
+    private ObjectContext context;
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("DATE_TEST");
+    }
+
+    @Test
+    public void testCURRENT_DATE() {
+
+        Calendar cal = Calendar.getInstance();
+        int year = cal.get(Calendar.YEAR);
+
+        DateTestEntity o1 = context.newObject(DateTestEntity.class);
+        cal.set(year - 3, 1, 1);
+        o1.setDateColumn(cal.getTime());
+
+        DateTestEntity o2 = context.newObject(DateTestEntity.class);
+        cal.set(year + 3, 1, 1);
+        o2.setDateColumn(cal.getTime());
+
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT d FROM DateTestEntity d WHERE d.dateColumn > CURRENT_DATE");
+        List<?> objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(o2));
+    }
+
+    @Test
+    public void testCURRENT_TIME() {
+
+        Calendar cal = Calendar.getInstance();
+        int year = cal.get(Calendar.YEAR);
+
+        DateTestEntity o1 = context.newObject(DateTestEntity.class);
+        cal.set(year, 1, 1, 0, 0, 0);
+        o1.setTimeColumn(cal.getTime());
+
+        DateTestEntity o2 = context.newObject(DateTestEntity.class);
+        cal.set(year, 1, 1, 23, 59, 59);
+        o2.setTimeColumn(cal.getTime());
+
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT d FROM DateTestEntity d WHERE d.timeColumn < CURRENT_TIME");
+        List<?> objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(o1));
+    }
+
+    @Test
+    public void testCURRENT_TIMESTAMP() {
+
+        Calendar cal = Calendar.getInstance();
+        int year = cal.get(Calendar.YEAR);
+        int month = cal.get(Calendar.MONTH);
+        int date = cal.get(Calendar.DATE);
+
+        DateTestEntity o1 = context.newObject(DateTestEntity.class);
+        cal.set(year, month, date, 0, 0, 0);
+        o1.setTimestampColumn(cal.getTime());
+
+        DateTestEntity o2 = context.newObject(DateTestEntity.class);
+        cal.set(year, month, date, 23, 59, 59);
+        o2.setTimestampColumn(cal.getTime());
+
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT d FROM DateTestEntity d WHERE d.timestampColumn < CURRENT_TIMESTAMP");
+        List<?> objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(o1));
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
index b364ea7..f29f219 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeleteIT.java
@@ -32,7 +32,6 @@ import org.apache.cayenne.unit.di.server.UseServerRuntime;
 import org.junit.Test;
 
 import java.sql.Types;
-import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -52,8 +51,6 @@ public class DataContextEJBQLDeleteIT extends ServerCase {
 
     protected TableHelper tPainting;
 
-    protected TableHelper tMeaningfulPKTest1Table;
-
     @Override
     protected void setUpAfterInjection() throws Exception {
         dbHelper.deleteAll("PAINTING_INFO");
@@ -61,8 +58,6 @@ public class DataContextEJBQLDeleteIT extends ServerCase {
         dbHelper.deleteAll("ARTIST_EXHIBIT");
         dbHelper.deleteAll("ARTIST_GROUP");
         dbHelper.deleteAll("ARTIST");
-        dbHelper.deleteAll("MEANINGFUL_PK_DEP");
-        dbHelper.deleteAll("MEANINGFUL_PK_TEST1");
 
         tPainting = new TableHelper(dbHelper, "PAINTING");
         tPainting.setColumns(
@@ -74,9 +69,6 @@ public class DataContextEJBQLDeleteIT extends ServerCase {
                 Types.BIGINT,
                 Types.VARCHAR,
                 Types.DECIMAL);
-
-        tMeaningfulPKTest1Table = new TableHelper(dbHelper, "MEANINGFUL_PK_TEST1");
-        tMeaningfulPKTest1Table.setColumns("PK_ATTRIBUTE", "DESCR");
     }
 
     protected void createPaintingsDataSet() throws Exception {
@@ -84,13 +76,6 @@ public class DataContextEJBQLDeleteIT extends ServerCase {
         tPainting.insert(33002, null, "P2", 5000);
     }
 
-    protected void createMeaningfulPKDataSet() throws Exception {
-
-        for (int i = 1; i <= 33; i++) {
-            tMeaningfulPKTest1Table.insert(i, "a" + i);
-        }
-    }
-
     @Test
     public void testDeleteNoIdVar() throws Exception {
         createPaintingsDataSet();
@@ -141,24 +126,4 @@ public class DataContextEJBQLDeleteIT extends ServerCase {
         assertNull(Cayenne.objectForPK(freshContext, Painting.class, 33002));
     }
 
-    @Test
-    public void testDeleteIdVar() throws Exception {
-
-        createMeaningfulPKDataSet();
-
-        EJBQLQuery q = new EJBQLQuery("select m.pkAttribute from MeaningfulPKTest1 m");
-
-        List<Integer> id = context.performQuery(q);
-
-        String ejbql = "delete from MeaningfulPKTest1 m WHERE m.pkAttribute in (:id)";
-
-        EJBQLQuery query = new EJBQLQuery(ejbql);
-        query.setParameter("id", id);
-        QueryResponse result = context.performGenericQuery(query);
-
-        int[] count = result.firstUpdateCount();
-        assertNotNull(count);
-        assertEquals(1, count.length);
-        assertEquals(33, count[0]);
-    }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
new file mode 100644
index 0000000..f532f13
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
@@ -0,0 +1,64 @@
+package org.apache.cayenne.access;
+
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.QueryResponse;
+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.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+@UseServerRuntime(ServerCase.MEANINGFUL_PK_PROJECT)
+public class DataContextEJBQLDeletePKIT extends ServerCase {
+
+    @Inject
+    protected ObjectContext context;
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    protected TableHelper tMeaningfulPKTest1Table;
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("MEANINGFUL_PK_DEP");
+        dbHelper.deleteAll("MEANINGFUL_PK_TEST1");
+
+        tMeaningfulPKTest1Table = new TableHelper(dbHelper, "MEANINGFUL_PK_TEST1");
+        tMeaningfulPKTest1Table.setColumns("PK_ATTRIBUTE", "DESCR");
+    }
+
+    protected void createMeaningfulPKDataSet() throws Exception {
+        for (int i = 1; i <= 33; i++) {
+            tMeaningfulPKTest1Table.insert(i, "a" + i);
+        }
+    }
+
+    @Test
+    public void testDeleteIdVar() throws Exception {
+
+        createMeaningfulPKDataSet();
+
+        EJBQLQuery q = new EJBQLQuery("select m.pkAttribute from MeaningfulPKTest1 m");
+
+        List<Integer> id = context.performQuery(q);
+
+        String ejbql = "delete from MeaningfulPKTest1 m WHERE m.pkAttribute in (:id)";
+
+        EJBQLQuery query = new EJBQLQuery(ejbql);
+        query.setParameter("id", id);
+        QueryResponse result = context.performGenericQuery(query);
+
+        int[] count = result.firstUpdateCount();
+        assertNotNull(count);
+        assertEquals(1, count.length);
+        assertEquals(33, count[0]);
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressions.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressions.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressions.java
deleted file mode 100644
index 9c4ae2e..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressions.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*****************************************************************
- *   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.access;
-
-import org.apache.cayenne.Cayenne;
-import org.apache.cayenne.ObjectContext;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.query.EJBQLQuery;
-import org.apache.cayenne.query.QueryChain;
-import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.testmap.Artist;
-import org.apache.cayenne.testdo.testmap.BigDecimalEntity;
-import org.apache.cayenne.testdo.testmap.BigIntegerEntity;
-import org.apache.cayenne.testdo.testmap.DateTestEntity;
-import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.UnitDbAdapter;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-import org.junit.Test;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.util.Calendar;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-// TODO: renamed as it fails on DB's like Derby. See CAY-1480. 
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
-public class DataContextEJBQLFunctionalExpressions extends ServerCase {
-
-    @Inject
-    protected DBHelper dbHelper;
-
-    @Inject
-    private ObjectContext context;
-
-    @Inject
-    private UnitDbAdapter accessStackAdapter;
-
-    @Override
-    protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("PAINTING_INFO");
-        dbHelper.deleteAll("PAINTING");
-        dbHelper.deleteAll("ARTIST_EXHIBIT");
-        dbHelper.deleteAll("ARTIST_GROUP");
-        dbHelper.deleteAll("ARTIST");
-
-        dbHelper.deleteAll("BIGDECIMAL_ENTITY");
-        dbHelper.deleteAll("BIGINTEGER_ENTITY");
-        dbHelper.deleteAll("DATE_TEST");
-    }
-
-    @Test
-    public void testCURRENT_DATE() {
-
-        Calendar cal = Calendar.getInstance();
-        int year = cal.get(Calendar.YEAR);
-
-        DateTestEntity o1 = context.newObject(DateTestEntity.class);
-        cal.set(year - 3, 1, 1);
-        o1.setDateColumn(cal.getTime());
-
-        DateTestEntity o2 = context.newObject(DateTestEntity.class);
-        cal.set(year + 3, 1, 1);
-        o2.setDateColumn(cal.getTime());
-
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT d FROM DateTestEntity d WHERE d.dateColumn > CURRENT_DATE");
-        List<?> objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(o2));
-    }
-
-    @Test
-    public void testCURRENT_TIME() {
-
-        Calendar cal = Calendar.getInstance();
-        int year = cal.get(Calendar.YEAR);
-
-        DateTestEntity o1 = context.newObject(DateTestEntity.class);
-        cal.set(year, 1, 1, 0, 0, 0);
-        o1.setTimeColumn(cal.getTime());
-
-        DateTestEntity o2 = context.newObject(DateTestEntity.class);
-        cal.set(year, 1, 1, 23, 59, 59);
-        o2.setTimeColumn(cal.getTime());
-
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT d FROM DateTestEntity d WHERE d.timeColumn < CURRENT_TIME");
-        List<?> objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(o1));
-    }
-
-    @Test
-    public void testCURRENT_TIMESTAMP() {
-
-        Calendar cal = Calendar.getInstance();
-        int year = cal.get(Calendar.YEAR);
-        int month = cal.get(Calendar.MONTH);
-        int date = cal.get(Calendar.DATE);
-
-        DateTestEntity o1 = context.newObject(DateTestEntity.class);
-        cal.set(year, month, date, 0, 0, 0);
-        o1.setTimestampColumn(cal.getTime());
-
-        DateTestEntity o2 = context.newObject(DateTestEntity.class);
-        cal.set(year, month, date, 23, 59, 59);
-        o2.setTimestampColumn(cal.getTime());
-
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT d FROM DateTestEntity d WHERE d.timestampColumn < CURRENT_TIMESTAMP");
-        List<?> objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(o1));
-    }
-
-    @Test
-    public void testABS() {
-
-        BigDecimalEntity o1 = context.newObject(BigDecimalEntity.class);
-        o1.setBigDecimalField(new BigDecimal("4.1"));
-
-        BigDecimalEntity o2 = context.newObject(BigDecimalEntity.class);
-        o2.setBigDecimalField(new BigDecimal("-5.1"));
-
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT d FROM BigDecimalEntity d WHERE ABS(d.bigDecimalField) > 4.5");
-        List<?> objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(o2));
-    }
-
-    @Test
-    public void testSQRT() {
-
-        BigDecimalEntity o1 = context.newObject(BigDecimalEntity.class);
-        o1.setBigDecimalField(new BigDecimal("9"));
-
-        BigDecimalEntity o2 = context.newObject(BigDecimalEntity.class);
-        o2.setBigDecimalField(new BigDecimal("16"));
-
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT d FROM BigDecimalEntity d WHERE SQRT(d.bigDecimalField) > 3.1");
-        List<?> objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(o2));
-    }
-
-    @Test
-    public void testMOD() {
-
-        BigIntegerEntity o1 = context.newObject(BigIntegerEntity.class);
-        o1.setBigIntegerField(new BigInteger("9"));
-
-        BigIntegerEntity o2 = context.newObject(BigIntegerEntity.class);
-        o2.setBigIntegerField(new BigInteger("10"));
-
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT d FROM BigIntegerEntity d WHERE MOD(d.bigIntegerField, 4) = 2");
-        List<?> objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(o2));
-    }
-
-    @Test
-    public void testSIZE() {
-
-        Artist a1 = context.newObject(Artist.class);
-        a1.setArtistName("a1");
-
-        Artist a2 = context.newObject(Artist.class);
-        a2.setArtistName("a2");
-
-        Painting p12 = context.newObject(Painting.class);
-        p12.setPaintingTitle("p12");
-        a2.addToPaintingArray(p12);
-        Painting p22 = context.newObject(Painting.class);
-        p22.setPaintingTitle("p22");
-        a2.addToPaintingArray(p22);
-
-        context.commitChanges();
-
-        // this fails:
-        // EJBQLQuery query = new EJBQLQuery(
-        // "SELECT d FROM Artist d WHERE SIZE(d.paintingArray) = 2");
-        // List<?> objects = context.performQuery(query);
-        // assertEquals(1, objects.size());
-        // assertTrue(objects.contains(a2));
-        //
-        // EJBQLQuery query2 = new EJBQLQuery(
-        // "SELECT d FROM Artist d WHERE SIZE(d.paintingArray) = 0");
-        // List<?> objects2 = context.performQuery(query2);
-        // assertEquals(1, objects2.size());
-        // assertTrue(objects2.contains(a1));
-    }
-
-    @Test
-    public void testCONCAT() {
-
-        Painting a1 = context.newObject(Painting.class);
-        a1.setPaintingTitle("a1");
-
-        Painting a2 = context.newObject(Painting.class);
-        a2.setPaintingTitle("a2");
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT a FROM Painting a WHERE CONCAT(a.paintingTitle, a.paintingTitle) = 'a1a1'");
-        List<?> objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(a1));
-    }
-
-    @Test
-    public void testSUBSTRING() {
-
-        Artist a1 = context.newObject(Artist.class);
-        a1.setArtistName("12345678");
-
-        Artist a2 = context.newObject(Artist.class);
-        a2.setArtistName("abcdefg");
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE SUBSTRING(a.artistName, 2, 3) = 'bcd'");
-        List<?> objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(a2));
-    }
-
-    @Test
-    public void testLOWER() {
-
-        Artist a1 = context.newObject(Artist.class);
-        a1.setArtistName("ABCDEFG");
-
-        Artist a2 = context.newObject(Artist.class);
-        a2.setArtistName("abcdefg");
-        context.commitChanges();
-
-        Artist a3 = context.newObject(Artist.class);
-        a3.setArtistName("Xabcdefg");
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE LOWER(a.artistName) = 'abcdefg'");
-        List<?> objects = context.performQuery(query);
-        assertEquals(2, objects.size());
-        assertTrue(objects.contains(a1));
-        assertTrue(objects.contains(a2));
-    }
-
-    @Test
-    public void testUPPER() {
-
-        Artist a1 = context.newObject(Artist.class);
-        a1.setArtistName("ABCDEFG");
-
-        Artist a2 = context.newObject(Artist.class);
-        a2.setArtistName("abcdefg");
-        context.commitChanges();
-
-        Artist a3 = context.newObject(Artist.class);
-        a3.setArtistName("Xabcdefg");
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE UPPER(a.artistName) = UPPER('abcdefg')");
-        List<?> objects = context.performQuery(query);
-        assertEquals(2, objects.size());
-        assertTrue(objects.contains(a1));
-        assertTrue(objects.contains(a2));
-    }
-
-    @Test
-    public void testLENGTH() {
-
-        Artist a1 = context.newObject(Artist.class);
-        a1.setArtistName("1234567");
-
-        Artist a2 = context.newObject(Artist.class);
-        a2.setArtistName("1234567890");
-
-        Artist a3 = context.newObject(Artist.class);
-        a3.setArtistName("1234567890-=");
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE LENGTH(a.artistName) > 7");
-        List<?> objects = context.performQuery(query);
-        assertEquals(2, objects.size());
-        assertTrue(objects.contains(a3));
-        assertTrue(objects.contains(a2));
-    }
-
-    @Test
-    public void testLOCATE() {
-
-        Artist a1 = context.newObject(Artist.class);
-        a1.setArtistName("___A___");
-
-        Artist a2 = context.newObject(Artist.class);
-        a2.setArtistName("_A_____");
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE LOCATE('A', a.artistName) = 2");
-        List<?> objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(a2));
-    }
-
-    @Test
-    public void testTRIM() {
-
-        // insert via a SQL template to prevent adapter trimming and such...
-        QueryChain inserts = new QueryChain();
-        inserts.addQuery(new SQLTemplate(
-                Artist.class,
-                "INSERT INTO ARTIST (ARTIST_ID,ARTIST_NAME) VALUES(1, '  A')"));
-        inserts.addQuery(new SQLTemplate(
-                Artist.class,
-                "INSERT INTO ARTIST (ARTIST_ID,ARTIST_NAME) VALUES(2, 'A  ')"));
-        context.performGenericQuery(inserts);
-
-        Artist a1 = Cayenne.objectForPK(context, Artist.class, 1);
-        Artist a2 = Cayenne.objectForPK(context, Artist.class, 2);
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE TRIM(a.artistName) = 'A'");
-        List<?> objects = context.performQuery(query);
-        assertEquals(2, objects.size());
-        assertTrue(objects.contains(a1));
-        assertTrue(objects.contains(a2));
-
-        query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE TRIM(LEADING FROM a.artistName) = 'A'");
-        objects = context.performQuery(query);
-        // this is fuzzy cause some DB trim trailing data by default
-        assertTrue(objects.size() == 1 || objects.size() == 2);
-        assertTrue(objects.contains(a1));
-
-        query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE TRIM(TRAILING FROM a.artistName) = 'A'");
-        objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(a2));
-
-        query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE TRIM(BOTH FROM a.artistName) = 'A'");
-        objects = context.performQuery(query);
-        assertEquals(2, objects.size());
-        assertTrue(objects.contains(a1));
-        assertTrue(objects.contains(a2));
-
-    }
-
-    @Test
-    public void testTRIMChar() {
-
-        if (!accessStackAdapter.supportsTrimChar()) {
-            return;
-        }
-
-        Artist a1 = context.newObject(Artist.class);
-        a1.setArtistName("XXXA");
-
-        Artist a2 = context.newObject(Artist.class);
-        a2.setArtistName("AXXX");
-        context.commitChanges();
-
-        EJBQLQuery query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE TRIM('X' FROM a.artistName) = 'A'");
-        List<?> objects = context.performQuery(query);
-        assertEquals(2, objects.size());
-        assertTrue(objects.contains(a1));
-        assertTrue(objects.contains(a2));
-
-        query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE TRIM(LEADING 'X' FROM a.artistName) = 'A'");
-        objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(a1));
-
-        query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE TRIM(TRAILING 'X' FROM a.artistName) = 'A'");
-        objects = context.performQuery(query);
-        assertEquals(1, objects.size());
-        assertTrue(objects.contains(a2));
-
-        query = new EJBQLQuery(
-                "SELECT a FROM Artist a WHERE TRIM(BOTH 'X' FROM a.artistName) = 'A'");
-        objects = context.performQuery(query);
-        assertEquals(2, objects.size());
-        assertTrue(objects.contains(a1));
-        assertTrue(objects.contains(a2));
-    }
-}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
new file mode 100644
index 0000000..cd75d76
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
@@ -0,0 +1,295 @@
+/*****************************************************************
+ *   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.access;
+
+import org.apache.cayenne.Cayenne;
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.query.EJBQLQuery;
+import org.apache.cayenne.query.QueryChain;
+import org.apache.cayenne.query.SQLTemplate;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+// TODO: renamed as it fails on DB's like Derby. See CAY-1480. 
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class DataContextEJBQLFunctionalExpressionsIT extends ServerCase {
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    @Inject
+    private ObjectContext context;
+
+    @Inject
+    private UnitDbAdapter accessStackAdapter;
+
+    @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 testSIZE() {
+
+        Artist a1 = context.newObject(Artist.class);
+        a1.setArtistName("a1");
+
+        Artist a2 = context.newObject(Artist.class);
+        a2.setArtistName("a2");
+
+        Painting p12 = context.newObject(Painting.class);
+        p12.setPaintingTitle("p12");
+        a2.addToPaintingArray(p12);
+        Painting p22 = context.newObject(Painting.class);
+        p22.setPaintingTitle("p22");
+        a2.addToPaintingArray(p22);
+
+        context.commitChanges();
+
+        // this fails:
+        // EJBQLQuery query = new EJBQLQuery(
+        // "SELECT d FROM Artist d WHERE SIZE(d.paintingArray) = 2");
+        // List<?> objects = context.performQuery(query);
+        // assertEquals(1, objects.size());
+        // assertTrue(objects.contains(a2));
+        //
+        // EJBQLQuery query2 = new EJBQLQuery(
+        // "SELECT d FROM Artist d WHERE SIZE(d.paintingArray) = 0");
+        // List<?> objects2 = context.performQuery(query2);
+        // assertEquals(1, objects2.size());
+        // assertTrue(objects2.contains(a1));
+    }
+
+    @Test
+    public void testCONCAT() {
+
+        Painting a1 = context.newObject(Painting.class);
+        a1.setPaintingTitle("a1");
+
+        Painting a2 = context.newObject(Painting.class);
+        a2.setPaintingTitle("a2");
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT a FROM Painting a WHERE CONCAT(a.paintingTitle, a.paintingTitle) = 'a1a1'");
+        List<?> objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(a1));
+    }
+
+    @Test
+    public void testSUBSTRING() {
+
+        Artist a1 = context.newObject(Artist.class);
+        a1.setArtistName("12345678");
+
+        Artist a2 = context.newObject(Artist.class);
+        a2.setArtistName("abcdefg");
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE SUBSTRING(a.artistName, 2, 3) = 'bcd'");
+        List<?> objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(a2));
+    }
+
+    @Test
+    public void testLOWER() {
+
+        Artist a1 = context.newObject(Artist.class);
+        a1.setArtistName("ABCDEFG");
+
+        Artist a2 = context.newObject(Artist.class);
+        a2.setArtistName("abcdefg");
+        context.commitChanges();
+
+        Artist a3 = context.newObject(Artist.class);
+        a3.setArtistName("Xabcdefg");
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE LOWER(a.artistName) = 'abcdefg'");
+        List<?> objects = context.performQuery(query);
+        assertEquals(2, objects.size());
+        assertTrue(objects.contains(a1));
+        assertTrue(objects.contains(a2));
+    }
+
+    @Test
+    public void testUPPER() {
+
+        Artist a1 = context.newObject(Artist.class);
+        a1.setArtistName("ABCDEFG");
+
+        Artist a2 = context.newObject(Artist.class);
+        a2.setArtistName("abcdefg");
+        context.commitChanges();
+
+        Artist a3 = context.newObject(Artist.class);
+        a3.setArtistName("Xabcdefg");
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE UPPER(a.artistName) = UPPER('abcdefg')");
+        List<?> objects = context.performQuery(query);
+        assertEquals(2, objects.size());
+        assertTrue(objects.contains(a1));
+        assertTrue(objects.contains(a2));
+    }
+
+    @Test
+    public void testLENGTH() {
+
+        Artist a1 = context.newObject(Artist.class);
+        a1.setArtistName("1234567");
+
+        Artist a2 = context.newObject(Artist.class);
+        a2.setArtistName("1234567890");
+
+        Artist a3 = context.newObject(Artist.class);
+        a3.setArtistName("1234567890-=");
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE LENGTH(a.artistName) > 7");
+        List<?> objects = context.performQuery(query);
+        assertEquals(2, objects.size());
+        assertTrue(objects.contains(a3));
+        assertTrue(objects.contains(a2));
+    }
+
+    @Test
+    public void testLOCATE() {
+
+        Artist a1 = context.newObject(Artist.class);
+        a1.setArtistName("___A___");
+
+        Artist a2 = context.newObject(Artist.class);
+        a2.setArtistName("_A_____");
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE LOCATE('A', a.artistName) = 2");
+        List<?> objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(a2));
+    }
+
+    @Test
+    public void testTRIM() {
+
+        // insert via a SQL template to prevent adapter trimming and such...
+        QueryChain inserts = new QueryChain();
+        inserts.addQuery(new SQLTemplate(
+                Artist.class,
+                "INSERT INTO ARTIST (ARTIST_ID,ARTIST_NAME) VALUES(1, '  A')"));
+        inserts.addQuery(new SQLTemplate(
+                Artist.class,
+                "INSERT INTO ARTIST (ARTIST_ID,ARTIST_NAME) VALUES(2, 'A  ')"));
+        context.performGenericQuery(inserts);
+
+        Artist a1 = Cayenne.objectForPK(context, Artist.class, 1);
+        Artist a2 = Cayenne.objectForPK(context, Artist.class, 2);
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE TRIM(a.artistName) = 'A'");
+        List<?> objects = context.performQuery(query);
+        assertEquals(2, objects.size());
+        assertTrue(objects.contains(a1));
+        assertTrue(objects.contains(a2));
+
+        query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE TRIM(LEADING FROM a.artistName) = 'A'");
+        objects = context.performQuery(query);
+        // this is fuzzy cause some DB trim trailing data by default
+        assertTrue(objects.size() == 1 || objects.size() == 2);
+        assertTrue(objects.contains(a1));
+
+        query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE TRIM(TRAILING FROM a.artistName) = 'A'");
+        objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(a2));
+
+        query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE TRIM(BOTH FROM a.artistName) = 'A'");
+        objects = context.performQuery(query);
+        assertEquals(2, objects.size());
+        assertTrue(objects.contains(a1));
+        assertTrue(objects.contains(a2));
+
+    }
+
+    @Test
+    public void testTRIMChar() {
+
+        if (!accessStackAdapter.supportsTrimChar()) {
+            return;
+        }
+
+        Artist a1 = context.newObject(Artist.class);
+        a1.setArtistName("XXXA");
+
+        Artist a2 = context.newObject(Artist.class);
+        a2.setArtistName("AXXX");
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE TRIM('X' FROM a.artistName) = 'A'");
+        List<?> objects = context.performQuery(query);
+        assertEquals(2, objects.size());
+        assertTrue(objects.contains(a1));
+        assertTrue(objects.contains(a2));
+
+        query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE TRIM(LEADING 'X' FROM a.artistName) = 'A'");
+        objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(a1));
+
+        query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE TRIM(TRAILING 'X' FROM a.artistName) = 'A'");
+        objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(a2));
+
+        query = new EJBQLQuery(
+                "SELECT a FROM Artist a WHERE TRIM(BOTH 'X' FROM a.artistName) = 'A'");
+        objects = context.performQuery(query);
+        assertEquals(2, objects.size());
+        assertTrue(objects.contains(a1));
+        assertTrue(objects.contains(a2));
+    }
+}

http://git-wip-us.apache.org/repos/asf/cayenne/blob/535ecb88/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
new file mode 100644
index 0000000..b639559
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLNumericalFunctionalIT.java
@@ -0,0 +1,133 @@
+package org.apache.cayenne.access;
+
+import org.apache.cayenne.Cayenne;
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.QueryResponse;
+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.numeric_types.BigDecimalEntity;
+import org.apache.cayenne.testdo.numeric_types.BigIntegerEntity;
+import org.apache.cayenne.testdo.numeric_types.BooleanTestEntity;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Test;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+@UseServerRuntime(ServerCase.NUMERIC_TYPES_PROJECT)
+public class DataContextEJBQLNumericalFunctionalIT extends ServerCase {
+
+    @Inject
+    protected DBHelper dbHelper;
+
+    @Inject
+    private ObjectContext context;
+
+    private TableHelper tBigIntegerEntity;
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+        dbHelper.deleteAll("BIGDECIMAL_ENTITY");
+        dbHelper.deleteAll("BIGINTEGER_ENTITY");
+        dbHelper.deleteAll("BOOLEAN_TEST");
+
+        tBigIntegerEntity = new TableHelper(dbHelper, "BIGINTEGER_ENTITY");
+        tBigIntegerEntity.setColumns("ID", "BIG_INTEGER_FIELD");
+    }
+
+    @Test
+    public void testABS() {
+
+        BigDecimalEntity o1 = context.newObject(BigDecimalEntity.class);
+        o1.setBigDecimalField(new BigDecimal("4.1"));
+
+        BigDecimalEntity o2 = context.newObject(BigDecimalEntity.class);
+        o2.setBigDecimalField(new BigDecimal("-5.1"));
+
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT d FROM BigDecimalEntity d WHERE ABS(d.bigDecimalField) > 4.5");
+        List<?> objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(o2));
+    }
+
+    @Test
+    public void testSQRT() {
+
+        BigDecimalEntity o1 = context.newObject(BigDecimalEntity.class);
+        o1.setBigDecimalField(new BigDecimal("9"));
+
+        BigDecimalEntity o2 = context.newObject(BigDecimalEntity.class);
+        o2.setBigDecimalField(new BigDecimal("16"));
+
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT d FROM BigDecimalEntity d WHERE SQRT(d.bigDecimalField) > 3.1");
+        List<?> objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(o2));
+    }
+
+    @Test
+    public void testMOD() {
+
+        BigIntegerEntity o1 = context.newObject(BigIntegerEntity.class);
+        o1.setBigIntegerField(new BigInteger("9"));
+
+        BigIntegerEntity o2 = context.newObject(BigIntegerEntity.class);
+        o2.setBigIntegerField(new BigInteger("10"));
+
+        context.commitChanges();
+
+        EJBQLQuery query = new EJBQLQuery(
+                "SELECT d FROM BigIntegerEntity d WHERE MOD(d.bigIntegerField, 4) = 2");
+        List<?> objects = context.performQuery(query);
+        assertEquals(1, objects.size());
+        assertTrue(objects.contains(o2));
+    }
+
+    @Test
+    public void testUpdateNoQualifierBoolean() throws Exception {
+
+        BooleanTestEntity o1 = context.newObject(BooleanTestEntity.class);
+        o1.setBooleanColumn(Boolean.TRUE);
+
+        BooleanTestEntity o2 = context.newObject(BooleanTestEntity.class);
+        o2.setBooleanColumn(Boolean.FALSE);
+
+        BooleanTestEntity o3 = context.newObject(BooleanTestEntity.class);
+        o3.setBooleanColumn(Boolean.FALSE);
+
+        context.commitChanges();
+
+        EJBQLQuery check = new EJBQLQuery("select count(p) from BooleanTestEntity p "
+                + "WHERE p.booleanColumn = true");
+
+        Object notUpdated = Cayenne.objectForQuery(context, check);
+        assertEquals(new Long(1l), notUpdated);
+
+        String ejbql = "UPDATE BooleanTestEntity AS p SET p.booleanColumn = true";
+        EJBQLQuery query = new EJBQLQuery(ejbql);
+
+        QueryResponse result = context.performGenericQuery(query);
+
+        int[] count = result.firstUpdateCount();
+        assertNotNull(count);
+        assertEquals(1, count.length);
+        assertEquals(3, count[0]);
+
+        notUpdated = Cayenne.objectForQuery(context, check);
+        assertEquals(new Long(3l), notUpdated);
+    }
+}