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/02 08:10:07 UTC
[19/48] Installing Maven Failsafe Plugin
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e42c376c/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderIT.java
new file mode 100644
index 0000000..cdf65e3
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderIT.java
@@ -0,0 +1,207 @@
+/*****************************************************************
+ * 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.DataRow;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.EntityResolver;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.query.MockQueryMetadata;
+import org.apache.cayenne.query.PrefetchTreeNode;
+import org.apache.cayenne.query.QueryMetadata;
+import org.apache.cayenne.reflect.ClassDescriptor;
+import org.apache.cayenne.testdo.testmap.Artist;
+import org.apache.cayenne.testdo.testmap.Gallery;
+import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class PrefetchProcessorTreeBuilderIT extends ServerCase {
+
+ @Inject
+ private DataContext context;
+
+ @Inject
+ private EntityResolver resolver;
+
+ public void testBuildTreeNoPrefetches() {
+
+ final ClassDescriptor descriptor = resolver.getClassDescriptor("Artist");
+ List<Object> dataRows = new ArrayList<Object>();
+ dataRows.add(new DataRow(4));
+ dataRows.add(new DataRow(4));
+
+ QueryMetadata metadata = new MockQueryMetadata() {
+
+ @Override
+ public ClassDescriptor getClassDescriptor() {
+ return descriptor;
+ }
+
+ @Override
+ public ObjEntity getObjEntity() {
+ return descriptor.getEntity();
+ }
+
+ @Override
+ public DbEntity getDbEntity() {
+ return getObjEntity().getDbEntity();
+ }
+
+ @Override
+ public DataMap getDataMap() {
+ return getObjEntity().getDataMap();
+ }
+
+ @Override
+ public boolean isRefreshingObjects() {
+ return true;
+ }
+
+ @Override
+ public boolean isResolvingInherited() {
+ return true;
+ }
+ };
+
+ PrefetchTreeNode tree = new PrefetchTreeNode();
+ HierarchicalObjectResolver resolver = new HierarchicalObjectResolver(
+ context,
+ metadata);
+ PrefetchProcessorTreeBuilder builder = new PrefetchProcessorTreeBuilder(
+ resolver,
+ dataRows,
+ new HashMap<Object, Object>());
+
+ PrefetchProcessorNode processingTree = builder.buildTree(tree);
+
+ assertTrue(processingTree.getChildren().isEmpty());
+ assertFalse(processingTree.isPhantom());
+ assertFalse(processingTree.isPartitionedByParent());
+ assertTrue(processingTree.isDisjointPrefetch());
+ assertSame(dataRows, processingTree.getDataRows());
+ assertSame(descriptor.getEntity(), processingTree.getResolver().getEntity());
+ assertNull(processingTree.getIncoming());
+ }
+
+ public void testBuildTreeWithPrefetches() {
+
+ final ClassDescriptor descriptor = resolver.getClassDescriptor("Artist");
+ ObjEntity e2 = resolver.getObjEntity("Painting");
+ ObjEntity e3 = resolver.getObjEntity("Gallery");
+ ObjEntity e4 = resolver.getObjEntity("Exhibit");
+ ObjEntity e5 = resolver.getObjEntity("ArtistExhibit");
+
+ List<Object> mainRows = new ArrayList<Object>();
+ Map<Object, Object> extraRows = new HashMap<Object, Object>();
+
+ PrefetchTreeNode tree = new PrefetchTreeNode();
+ tree.addPath(Artist.PAINTING_ARRAY_PROPERTY).setPhantom(false);
+ tree.addPath(
+ Artist.PAINTING_ARRAY_PROPERTY
+ + "."
+ + Painting.TO_GALLERY_PROPERTY
+ + "."
+ + Gallery.EXHIBIT_ARRAY_PROPERTY).setPhantom(false);
+ tree.addPath(Artist.ARTIST_EXHIBIT_ARRAY_PROPERTY).setPhantom(false);
+
+ QueryMetadata metadata = new MockQueryMetadata() {
+
+ @Override
+ public ClassDescriptor getClassDescriptor() {
+ return descriptor;
+ }
+
+ @Override
+ public ObjEntity getObjEntity() {
+ return descriptor.getEntity();
+ }
+
+ @Override
+ public DbEntity getDbEntity() {
+ return getObjEntity().getDbEntity();
+ }
+
+ @Override
+ public DataMap getDataMap() {
+ return getObjEntity().getDataMap();
+ }
+
+ @Override
+ public boolean isRefreshingObjects() {
+ return true;
+ }
+
+ @Override
+ public boolean isResolvingInherited() {
+ return true;
+ }
+ };
+
+ HierarchicalObjectResolver resolver = new HierarchicalObjectResolver(
+ context,
+ metadata);
+ PrefetchProcessorTreeBuilder builder = new PrefetchProcessorTreeBuilder(
+ resolver,
+ mainRows,
+ extraRows);
+
+ PrefetchProcessorNode n1 = builder.buildTree(tree);
+
+ assertSame(mainRows, n1.getDataRows());
+ assertSame(descriptor.getEntity(), n1.getResolver().getEntity());
+
+ PrefetchProcessorNode n2 = (PrefetchProcessorNode) n1.getNode("paintingArray");
+ assertNotNull(n2);
+ assertSame(e2, n2.getResolver().getEntity());
+ assertFalse(n2.isPhantom());
+ assertTrue(n2.isPartitionedByParent());
+
+ PrefetchProcessorNode n3 = (PrefetchProcessorNode) n1
+ .getNode("paintingArray.toGallery");
+ assertNotNull(n3);
+ assertSame(e3, n3.getResolver().getEntity());
+ assertTrue(n3.isPhantom());
+ assertTrue(n3.isPartitionedByParent());
+
+ PrefetchProcessorNode n4 = (PrefetchProcessorNode) n1
+ .getNode("paintingArray.toGallery.exhibitArray");
+ assertNotNull(n4);
+ assertSame(e4, n4.getResolver().getEntity());
+ assertFalse(n4.isPhantom());
+ assertTrue(n4.isPartitionedByParent());
+
+ PrefetchProcessorNode n5 = (PrefetchProcessorNode) n1
+ .getNode("artistExhibitArray");
+ assertNotNull(n5);
+ assertSame(e5, n5.getResolver().getEntity());
+ assertFalse(n5.isPhantom());
+ assertTrue(n5.isPartitionedByParent());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e42c376c/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderTest.java b/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderTest.java
deleted file mode 100644
index 0ad6c0a..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/PrefetchProcessorTreeBuilderTest.java
+++ /dev/null
@@ -1,207 +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 java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.cayenne.DataRow;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.query.MockQueryMetadata;
-import org.apache.cayenne.query.PrefetchTreeNode;
-import org.apache.cayenne.query.QueryMetadata;
-import org.apache.cayenne.reflect.ClassDescriptor;
-import org.apache.cayenne.testdo.testmap.Artist;
-import org.apache.cayenne.testdo.testmap.Gallery;
-import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
-public class PrefetchProcessorTreeBuilderTest extends ServerCase {
-
- @Inject
- private DataContext context;
-
- @Inject
- private EntityResolver resolver;
-
- public void testBuildTreeNoPrefetches() {
-
- final ClassDescriptor descriptor = resolver.getClassDescriptor("Artist");
- List<Object> dataRows = new ArrayList<Object>();
- dataRows.add(new DataRow(4));
- dataRows.add(new DataRow(4));
-
- QueryMetadata metadata = new MockQueryMetadata() {
-
- @Override
- public ClassDescriptor getClassDescriptor() {
- return descriptor;
- }
-
- @Override
- public ObjEntity getObjEntity() {
- return descriptor.getEntity();
- }
-
- @Override
- public DbEntity getDbEntity() {
- return getObjEntity().getDbEntity();
- }
-
- @Override
- public DataMap getDataMap() {
- return getObjEntity().getDataMap();
- }
-
- @Override
- public boolean isRefreshingObjects() {
- return true;
- }
-
- @Override
- public boolean isResolvingInherited() {
- return true;
- }
- };
-
- PrefetchTreeNode tree = new PrefetchTreeNode();
- HierarchicalObjectResolver resolver = new HierarchicalObjectResolver(
- context,
- metadata);
- PrefetchProcessorTreeBuilder builder = new PrefetchProcessorTreeBuilder(
- resolver,
- dataRows,
- new HashMap<Object, Object>());
-
- PrefetchProcessorNode processingTree = builder.buildTree(tree);
-
- assertTrue(processingTree.getChildren().isEmpty());
- assertFalse(processingTree.isPhantom());
- assertFalse(processingTree.isPartitionedByParent());
- assertTrue(processingTree.isDisjointPrefetch());
- assertSame(dataRows, processingTree.getDataRows());
- assertSame(descriptor.getEntity(), processingTree.getResolver().getEntity());
- assertNull(processingTree.getIncoming());
- }
-
- public void testBuildTreeWithPrefetches() {
-
- final ClassDescriptor descriptor = resolver.getClassDescriptor("Artist");
- ObjEntity e2 = resolver.getObjEntity("Painting");
- ObjEntity e3 = resolver.getObjEntity("Gallery");
- ObjEntity e4 = resolver.getObjEntity("Exhibit");
- ObjEntity e5 = resolver.getObjEntity("ArtistExhibit");
-
- List<Object> mainRows = new ArrayList<Object>();
- Map<Object, Object> extraRows = new HashMap<Object, Object>();
-
- PrefetchTreeNode tree = new PrefetchTreeNode();
- tree.addPath(Artist.PAINTING_ARRAY_PROPERTY).setPhantom(false);
- tree.addPath(
- Artist.PAINTING_ARRAY_PROPERTY
- + "."
- + Painting.TO_GALLERY_PROPERTY
- + "."
- + Gallery.EXHIBIT_ARRAY_PROPERTY).setPhantom(false);
- tree.addPath(Artist.ARTIST_EXHIBIT_ARRAY_PROPERTY).setPhantom(false);
-
- QueryMetadata metadata = new MockQueryMetadata() {
-
- @Override
- public ClassDescriptor getClassDescriptor() {
- return descriptor;
- }
-
- @Override
- public ObjEntity getObjEntity() {
- return descriptor.getEntity();
- }
-
- @Override
- public DbEntity getDbEntity() {
- return getObjEntity().getDbEntity();
- }
-
- @Override
- public DataMap getDataMap() {
- return getObjEntity().getDataMap();
- }
-
- @Override
- public boolean isRefreshingObjects() {
- return true;
- }
-
- @Override
- public boolean isResolvingInherited() {
- return true;
- }
- };
-
- HierarchicalObjectResolver resolver = new HierarchicalObjectResolver(
- context,
- metadata);
- PrefetchProcessorTreeBuilder builder = new PrefetchProcessorTreeBuilder(
- resolver,
- mainRows,
- extraRows);
-
- PrefetchProcessorNode n1 = builder.buildTree(tree);
-
- assertSame(mainRows, n1.getDataRows());
- assertSame(descriptor.getEntity(), n1.getResolver().getEntity());
-
- PrefetchProcessorNode n2 = (PrefetchProcessorNode) n1.getNode("paintingArray");
- assertNotNull(n2);
- assertSame(e2, n2.getResolver().getEntity());
- assertFalse(n2.isPhantom());
- assertTrue(n2.isPartitionedByParent());
-
- PrefetchProcessorNode n3 = (PrefetchProcessorNode) n1
- .getNode("paintingArray.toGallery");
- assertNotNull(n3);
- assertSame(e3, n3.getResolver().getEntity());
- assertTrue(n3.isPhantom());
- assertTrue(n3.isPartitionedByParent());
-
- PrefetchProcessorNode n4 = (PrefetchProcessorNode) n1
- .getNode("paintingArray.toGallery.exhibitArray");
- assertNotNull(n4);
- assertSame(e4, n4.getResolver().getEntity());
- assertFalse(n4.isPhantom());
- assertTrue(n4.isPartitionedByParent());
-
- PrefetchProcessorNode n5 = (PrefetchProcessorNode) n1
- .getNode("artistExhibitArray");
- assertNotNull(n5);
- assertSame(e5, n5.getResolver().getEntity());
- assertFalse(n5.isPhantom());
- assertTrue(n5.isPartitionedByParent());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e42c376c/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesIT.java
new file mode 100644
index 0000000..f16395d
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesIT.java
@@ -0,0 +1,47 @@
+/*****************************************************************
+ * 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.di.Inject;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.testdo.testmap.PrimitivesTestEntity;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class PrimitiveAttributesIT extends ServerCase {
+
+ @Inject
+ private DataContext context;
+
+ @Inject
+ private DBHelper dbHelper;
+
+ @Override
+ protected void setUpAfterInjection() throws Exception {
+ dbHelper.deleteAll("PRIMITIVES_TEST");
+ }
+
+ public void testCommit() {
+ PrimitivesTestEntity e = context.newObject(PrimitivesTestEntity.class);
+ e.setBooleanColumn(true);
+ e.setIntColumn(88);
+ context.commitChanges();
+ }
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e42c376c/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesTest.java b/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesTest.java
deleted file mode 100644
index 86ca404..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/PrimitiveAttributesTest.java
+++ /dev/null
@@ -1,47 +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.di.Inject;
-import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.testmap.PrimitivesTestEntity;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-
-@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
-public class PrimitiveAttributesTest extends ServerCase {
-
- @Inject
- private DataContext context;
-
- @Inject
- private DBHelper dbHelper;
-
- @Override
- protected void setUpAfterInjection() throws Exception {
- dbHelper.deleteAll("PRIMITIVES_TEST");
- }
-
- public void testCommit() {
- PrimitivesTestEntity e = context.newObject(PrimitivesTestEntity.class);
- e.setBooleanColumn(true);
- e.setIntColumn(88);
- context.commitChanges();
- }
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e42c376c/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
new file mode 100644
index 0000000..de7f72a
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersIT.java
@@ -0,0 +1,156 @@
+/*****************************************************************
+ * 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 java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.cayenne.ObjectContext;
+import org.apache.cayenne.ObjectId;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.exp.ExpressionFactory;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.query.EJBQLQuery;
+import org.apache.cayenne.query.ObjectIdQuery;
+import org.apache.cayenne.query.RelationshipQuery;
+import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.query.UpdateBatchQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.testdo.quotemap.QuoteAdress;
+import org.apache.cayenne.testdo.quotemap.Quote_Person;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+@UseServerRuntime(ServerCase.QUOTED_IDENTIFIERS_PROJECT)
+public class QuotedIdentifiersIT extends ServerCase {
+
+ @Inject
+ private ObjectContext context;
+
+ @Inject
+ private DBHelper dbHelper;
+
+ @Override
+ protected void setUpAfterInjection() throws Exception {
+ dbHelper.deleteAll("quote Person");
+ dbHelper.deleteAll("QUOTED_ADDRESS");
+
+ QuoteAdress quoteAdress = context.newObject(QuoteAdress.class);
+ quoteAdress.setCity("city");
+ quoteAdress.setGroup("324");
+
+ Quote_Person quote_Person = context.newObject(Quote_Person.class);
+ quote_Person.setSalary(10000);
+ quote_Person.setName("Arcadi");
+ quote_Person.setGroup("107324");
+ quote_Person.setAddress_Rel(quoteAdress);
+
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(QuoteAdress.class);
+ List objects = context.performQuery(q);
+ assertEquals(1, objects.size());
+
+ SelectQuery qQuote_Person = new SelectQuery(Quote_Person.class);
+ List objects2 = context.performQuery(qQuote_Person);
+ assertEquals(1, objects2.size());
+
+ QuoteAdress quoteAdress2 = context.newObject(QuoteAdress.class);
+ quoteAdress2.setCity("city2");
+
+ Quote_Person quote_Person2 = context.newObject(Quote_Person.class);
+ quote_Person2.setSalary(100);
+ quote_Person2.setName("Name");
+ quote_Person2.setGroup("1111");
+ quote_Person2.setDAte(new Date());
+ quote_Person2.setAddress_Rel(quoteAdress2);
+
+ context.commitChanges();
+ }
+
+ public void testPrefetchQuote() throws Exception {
+ DbEntity entity = context.getEntityResolver().getObjEntity(QuoteAdress.class).getDbEntity();
+ List idAttributes = Collections.singletonList(entity.getAttribute("City"));
+ List updatedAttributes = Collections.singletonList(entity.getAttribute("City"));
+
+ UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes,
+ Collections.<String> emptySet(), 1);
+
+ List objects3 = context.performQuery(updateQuery);
+ assertEquals(0, objects3.size());
+
+ SelectQuery qQuote_Person2 = new SelectQuery(Quote_Person.class);
+ List objects4 = context.performQuery(qQuote_Person2);
+ assertEquals(2, objects4.size());
+
+ SelectQuery qQuote_Person3 = new SelectQuery(Quote_Person.class, ExpressionFactory.matchExp("salary", 100));
+ List objects5 = context.performQuery(qQuote_Person3);
+ assertEquals(1, objects5.size());
+
+ SelectQuery qQuote_Person4 = new SelectQuery(Quote_Person.class, ExpressionFactory.matchExp("group", "107324"));
+ List objects6 = context.performQuery(qQuote_Person4);
+ assertEquals(1, objects6.size());
+
+ SelectQuery quoteAdress1 = new SelectQuery(QuoteAdress.class, ExpressionFactory.matchExp("group", "324"));
+ List objects7 = context.performQuery(quoteAdress1);
+ assertEquals(1, objects7.size());
+
+ ObjectIdQuery queryObjectId = new ObjectIdQuery(new ObjectId("QuoteAdress", QuoteAdress.GROUP_PROPERTY, "324"));
+
+ List objects8 = context.performQuery(queryObjectId);
+ assertEquals(1, objects8.size());
+
+ ObjectIdQuery queryObjectId2 = new ObjectIdQuery(new ObjectId("Quote_Person", "GROUP", "1111"));
+ List objects9 = context.performQuery(queryObjectId2);
+ assertEquals(1, objects9.size());
+
+ SelectQuery person2Query = new SelectQuery(Quote_Person.class, ExpressionFactory.matchExp("name", "Name"));
+ Quote_Person quote_Person2 = (Quote_Person) context.performQuery(person2Query).get(0);
+
+ RelationshipQuery relationshipQuery = new RelationshipQuery(quote_Person2.getObjectId(), "address_Rel");
+ List objects10 = context.performQuery(relationshipQuery);
+ assertEquals(1, objects10.size());
+ }
+
+ public void testQuotedEJBQLQuery() throws Exception {
+ String ejbql = "select a from QuoteAdress a where a.group = '324'";
+ EJBQLQuery queryEJBQL = new EJBQLQuery(ejbql);
+ List objects11 = context.performQuery(queryEJBQL);
+ assertEquals(1, objects11.size());
+ }
+
+ public void testQuotedEJBQLQueryWithJoin() throws Exception {
+ String ejbql = "select p from Quote_Person p join p.address_Rel a where p.name = 'Arcadi'";
+ EJBQLQuery queryEJBQL = new EJBQLQuery(ejbql);
+ List resultList = context.performQuery(queryEJBQL);
+ assertEquals(1, resultList.size());
+ }
+
+ public void testQuotedEJBQLQueryWithOrderBy() throws Exception {
+ EJBQLQuery query = new EJBQLQuery("select p from Quote_Person p order by p.name");
+
+ List<Quote_Person> resultList = (List<Quote_Person>) context.performQuery(query);
+
+ assertEquals(2, resultList.size());
+ assertEquals("Arcadi", resultList.get(0).getName());
+ assertEquals("Name", resultList.get(1).getName());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e42c376c/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersTest.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersTest.java b/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersTest.java
deleted file mode 100644
index dc9887a..0000000
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/QuotedIdentifiersTest.java
+++ /dev/null
@@ -1,156 +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 java.util.Collections;
-import java.util.Date;
-import java.util.List;
-
-import org.apache.cayenne.ObjectContext;
-import org.apache.cayenne.ObjectId;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.query.EJBQLQuery;
-import org.apache.cayenne.query.ObjectIdQuery;
-import org.apache.cayenne.query.RelationshipQuery;
-import org.apache.cayenne.query.SelectQuery;
-import org.apache.cayenne.query.UpdateBatchQuery;
-import org.apache.cayenne.test.jdbc.DBHelper;
-import org.apache.cayenne.testdo.quotemap.QuoteAdress;
-import org.apache.cayenne.testdo.quotemap.Quote_Person;
-import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.UseServerRuntime;
-
-@UseServerRuntime(ServerCase.QUOTED_IDENTIFIERS_PROJECT)
-public class QuotedIdentifiersTest extends ServerCase {
-
- @Inject
- private ObjectContext context;
-
- @Inject
- private DBHelper dbHelper;
-
- @Override
- protected void setUpAfterInjection() throws Exception {
- dbHelper.deleteAll("quote Person");
- dbHelper.deleteAll("QUOTED_ADDRESS");
-
- QuoteAdress quoteAdress = context.newObject(QuoteAdress.class);
- quoteAdress.setCity("city");
- quoteAdress.setGroup("324");
-
- Quote_Person quote_Person = context.newObject(Quote_Person.class);
- quote_Person.setSalary(10000);
- quote_Person.setName("Arcadi");
- quote_Person.setGroup("107324");
- quote_Person.setAddress_Rel(quoteAdress);
-
- context.commitChanges();
-
- SelectQuery q = new SelectQuery(QuoteAdress.class);
- List objects = context.performQuery(q);
- assertEquals(1, objects.size());
-
- SelectQuery qQuote_Person = new SelectQuery(Quote_Person.class);
- List objects2 = context.performQuery(qQuote_Person);
- assertEquals(1, objects2.size());
-
- QuoteAdress quoteAdress2 = context.newObject(QuoteAdress.class);
- quoteAdress2.setCity("city2");
-
- Quote_Person quote_Person2 = context.newObject(Quote_Person.class);
- quote_Person2.setSalary(100);
- quote_Person2.setName("Name");
- quote_Person2.setGroup("1111");
- quote_Person2.setDAte(new Date());
- quote_Person2.setAddress_Rel(quoteAdress2);
-
- context.commitChanges();
- }
-
- public void testPrefetchQuote() throws Exception {
- DbEntity entity = context.getEntityResolver().getObjEntity(QuoteAdress.class).getDbEntity();
- List idAttributes = Collections.singletonList(entity.getAttribute("City"));
- List updatedAttributes = Collections.singletonList(entity.getAttribute("City"));
-
- UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, idAttributes, updatedAttributes,
- Collections.<String> emptySet(), 1);
-
- List objects3 = context.performQuery(updateQuery);
- assertEquals(0, objects3.size());
-
- SelectQuery qQuote_Person2 = new SelectQuery(Quote_Person.class);
- List objects4 = context.performQuery(qQuote_Person2);
- assertEquals(2, objects4.size());
-
- SelectQuery qQuote_Person3 = new SelectQuery(Quote_Person.class, ExpressionFactory.matchExp("salary", 100));
- List objects5 = context.performQuery(qQuote_Person3);
- assertEquals(1, objects5.size());
-
- SelectQuery qQuote_Person4 = new SelectQuery(Quote_Person.class, ExpressionFactory.matchExp("group", "107324"));
- List objects6 = context.performQuery(qQuote_Person4);
- assertEquals(1, objects6.size());
-
- SelectQuery quoteAdress1 = new SelectQuery(QuoteAdress.class, ExpressionFactory.matchExp("group", "324"));
- List objects7 = context.performQuery(quoteAdress1);
- assertEquals(1, objects7.size());
-
- ObjectIdQuery queryObjectId = new ObjectIdQuery(new ObjectId("QuoteAdress", QuoteAdress.GROUP_PROPERTY, "324"));
-
- List objects8 = context.performQuery(queryObjectId);
- assertEquals(1, objects8.size());
-
- ObjectIdQuery queryObjectId2 = new ObjectIdQuery(new ObjectId("Quote_Person", "GROUP", "1111"));
- List objects9 = context.performQuery(queryObjectId2);
- assertEquals(1, objects9.size());
-
- SelectQuery person2Query = new SelectQuery(Quote_Person.class, ExpressionFactory.matchExp("name", "Name"));
- Quote_Person quote_Person2 = (Quote_Person) context.performQuery(person2Query).get(0);
-
- RelationshipQuery relationshipQuery = new RelationshipQuery(quote_Person2.getObjectId(), "address_Rel");
- List objects10 = context.performQuery(relationshipQuery);
- assertEquals(1, objects10.size());
- }
-
- public void testQuotedEJBQLQuery() throws Exception {
- String ejbql = "select a from QuoteAdress a where a.group = '324'";
- EJBQLQuery queryEJBQL = new EJBQLQuery(ejbql);
- List objects11 = context.performQuery(queryEJBQL);
- assertEquals(1, objects11.size());
- }
-
- public void testQuotedEJBQLQueryWithJoin() throws Exception {
- String ejbql = "select p from Quote_Person p join p.address_Rel a where p.name = 'Arcadi'";
- EJBQLQuery queryEJBQL = new EJBQLQuery(ejbql);
- List resultList = context.performQuery(queryEJBQL);
- assertEquals(1, resultList.size());
- }
-
- public void testQuotedEJBQLQueryWithOrderBy() throws Exception {
- EJBQLQuery query = new EJBQLQuery("select p from Quote_Person p order by p.name");
-
- List<Quote_Person> resultList = (List<Quote_Person>) context.performQuery(query);
-
- assertEquals(2, resultList.size());
- assertEquals("Arcadi", resultList.get(0).getName());
- assertEquals("Name", resultList.get(1).getName());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/e42c376c/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
new file mode 100644
index 0000000..920096d
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
@@ -0,0 +1,858 @@
+/*****************************************************************
+ * 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.DataRow;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.query.NamedQuery;
+import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.testdo.testmap.DateTestEntity;
+import org.apache.cayenne.testdo.testmap.ReturnTypesMap1;
+import org.apache.cayenne.testdo.testmap.ReturnTypesMap2;
+import org.apache.cayenne.testdo.testmap.ReturnTypesMapLobs1;
+import org.apache.cayenne.unit.UnitDbAdapter;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+
+import java.math.BigDecimal;
+import java.sql.Time;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * Test Types mapping for selected columns
+ */
+@UseServerRuntime(ServerCase.TESTMAP_PROJECT)
+public class ReturnTypesMappingIT extends ServerCase {
+
+ @Inject
+ private DataContext context;
+
+ @Inject
+ private DBHelper dbHelper;
+
+ @Inject
+ private UnitDbAdapter unitDbAdapter;
+
+ @Override
+ protected void setUpAfterInjection() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ dbHelper.deleteAll("TYPES_MAPPING_LOBS_TEST1");
+ dbHelper.deleteAll("TYPES_MAPPING_TEST2");
+ }
+ dbHelper.deleteAll("TYPES_MAPPING_TEST1");
+ dbHelper.deleteAll("DATE_TEST");
+ }
+
+ /*
+ * TODO: olga: We need divided TYPES_MAPPING_TES2 to 2 schemas with lobs columns and not lobs columns
+ */
+
+ public void testBIGINT() throws Exception {
+ String columnName = "BIGINT_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Long bigintValue = 5326457654783454355l;
+ test.setBigintColumn(bigintValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(Long.class, columnValue.getClass());
+ assertEquals(bigintValue, columnValue);
+ }
+
+ public void testBIGINT2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Long bigintValue = 5326457654783454355l;
+ test.setBigintColumn(bigintValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Long columnValue = testRead.getBigintColumn();
+ assertNotNull(columnValue);
+ assertEquals(Long.class, columnValue.getClass());
+ assertEquals(bigintValue, columnValue);
+ }
+
+ public void testBINARY() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ String columnName = "BINARY_COLUMN";
+ ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+
+ byte[] binaryValue = {
+ 3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+ };
+ test.setBinaryColumn(binaryValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(byte[].class, columnValue.getClass());
+ assertTrue(Arrays.equals(binaryValue, (byte[]) columnValue));
+ }
+ }
+
+ public void testBINARY2() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+
+ byte[] binaryValue = {
+ 3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+ };
+ test.setBinaryColumn(binaryValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
+ ReturnTypesMap2 testRead = (ReturnTypesMap2) context.performQuery(q).get(0);
+ byte[] columnValue = testRead.getBinaryColumn();
+ assertNotNull(columnValue);
+ assertEquals(byte[].class, columnValue.getClass());
+ assertTrue(Arrays.equals(binaryValue, columnValue));
+ }
+ }
+
+ public void testBIT() throws Exception {
+ String columnName = "BIT_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Boolean bitValue = true;
+ test.setBitColumn(bitValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertTrue(Boolean.class.equals(columnValue.getClass())
+ || Short.class.equals(columnValue.getClass()));
+ assertTrue(bitValue.equals(columnValue) || ((Number) columnValue).intValue() == 1);
+ }
+
+ public void testBIT2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Boolean bitValue = true;
+ test.setBitColumn(bitValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Boolean columnValue = testRead.getBitColumn();
+ assertNotNull(columnValue);
+ assertEquals(Boolean.class, columnValue.getClass());
+ assertEquals(bitValue, columnValue);
+ }
+
+ public void testBLOB() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ String columnName = "BLOB_COLUMN";
+ ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+
+ byte[] blobValue = {
+ 3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+ };
+ test.setBlobColumn(blobValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(byte[].class, columnValue.getClass());
+ assertTrue(Arrays.equals(blobValue, (byte[]) columnValue));
+ }
+ }
+
+ public void testBLOB2() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+
+ byte[] blobValue = {
+ 3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+ };
+ test.setBlobColumn(blobValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
+ ReturnTypesMap2 testRead = (ReturnTypesMap2) context.performQuery(q).get(0);
+ byte[] columnValue = testRead.getBlobColumn();
+ assertNotNull(columnValue);
+ assertEquals(byte[].class, columnValue.getClass());
+ assertTrue(Arrays.equals(blobValue, columnValue));
+ }
+ }
+
+ public void testBOOLEAN() throws Exception {
+ String columnName = "BOOLEAN_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Boolean booleanValue = true;
+ test.setBooleanColumn(booleanValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertTrue(Boolean.class.equals(columnValue.getClass())
+ || Short.class.equals(columnValue.getClass()));
+ assertTrue(booleanValue.equals(columnValue)
+ || ((Number) columnValue).intValue() == 1);
+ }
+
+ public void testBOOLEAN2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Boolean booleanValue = true;
+ test.setBooleanColumn(booleanValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Boolean columnValue = testRead.getBooleanColumn();
+ assertNotNull(columnValue);
+ assertEquals(Boolean.class, columnValue.getClass());
+ assertEquals(booleanValue, columnValue);
+ }
+
+ public void testCHAR() throws Exception {
+ String columnName = "CHAR_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ String charValue = "Char string for tests!";
+ test.setCharColumn(charValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(String.class, columnValue.getClass());
+ assertEquals(charValue, columnValue);
+ }
+
+ public void testCHAR2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ String charValue = "Char string for tests!";
+ test.setCharColumn(charValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ String columnValue = testRead.getCharColumn();
+ assertNotNull(columnValue);
+ assertEquals(String.class, columnValue.getClass());
+ assertEquals(charValue, columnValue);
+ }
+
+ public void testCLOB() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ String columnName = "CLOB_COLUMN";
+ ReturnTypesMapLobs1 test = context.newObject(ReturnTypesMapLobs1.class);
+
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0; i < 10000; i++) {
+ buffer.append("CLOB very large string for tests!!!!\n");
+ }
+ String clobValue = buffer.toString();
+ test.setClobColumn(clobValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesLobsMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ if (columnValue == null && testRead.containsKey(columnName.toLowerCase())) {
+ columnValue = testRead.get(columnName.toLowerCase());
+ }
+ assertNotNull(columnValue);
+ assertEquals(String.class, columnValue.getClass());
+ assertEquals(clobValue, columnValue);
+ }
+ }
+
+ public void testCLOB2() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ ReturnTypesMapLobs1 test = context.newObject(ReturnTypesMapLobs1.class);
+
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0; i < 10000; i++) {
+ buffer.append("CLOB very large string for tests!!!!\n");
+ }
+ String clobValue = buffer.toString();
+ test.setClobColumn(clobValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMapLobs1.class);
+ ReturnTypesMapLobs1 testRead = (ReturnTypesMapLobs1) context.performQuery(q).get(0);
+ String columnValue = testRead.getClobColumn();
+ assertNotNull(columnValue);
+ assertEquals(String.class, columnValue.getClass());
+ assertEquals(clobValue, columnValue);
+ }
+ }
+
+ public void testDATE() throws Exception {
+ String columnName = "DATE_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Calendar cal = Calendar.getInstance();
+ cal.clear();
+ cal.set(2002, 1, 1);
+ Date dateValue = cal.getTime();
+ test.setDateColumn(dateValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(Date.class, columnValue.getClass());
+ assertEquals(dateValue.toString(), columnValue.toString());
+ }
+
+ public void testDATE2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Calendar cal = Calendar.getInstance();
+ cal.clear();
+ cal.set(2002, 1, 1);
+ Date dateValue = cal.getTime();
+ test.setDateColumn(dateValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Date columnValue = testRead.getDateColumn();
+ assertNotNull(columnValue);
+ assertEquals(Date.class, columnValue.getClass());
+ assertEquals(dateValue.toString(), columnValue.toString());
+ }
+
+ public void testDECIMAL() throws Exception {
+ String columnName = "DECIMAL_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ BigDecimal decimalValue = new BigDecimal("578438.57843");
+ test.setDecimalColumn(decimalValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(BigDecimal.class, columnValue.getClass());
+ assertEquals(decimalValue, columnValue);
+ }
+
+ public void testDECIMAL2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ BigDecimal decimalValue = new BigDecimal("578438.57843");
+ test.setDecimalColumn(decimalValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ BigDecimal columnValue = testRead.getDecimalColumn();
+ assertNotNull(columnValue);
+ assertEquals(BigDecimal.class, columnValue.getClass());
+ assertEquals(decimalValue, columnValue);
+ }
+
+ public void testDOUBLE() throws Exception {
+ String columnName = "DOUBLE_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Double doubleValue = 3298.4349783d;
+ test.setDoubleColumn(doubleValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(Double.class, columnValue.getClass());
+ assertEquals(doubleValue, columnValue);
+ }
+
+ public void testDOUBLE2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Double doubleValue = 3298.4349783d;
+ test.setDoubleColumn(doubleValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Double columnValue = testRead.getDoubleColumn();
+ assertNotNull(columnValue);
+ assertEquals(Double.class, columnValue.getClass());
+ assertEquals(doubleValue, columnValue);
+ }
+
+ public void testFLOAT() throws Exception {
+ String columnName = "FLOAT_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Float floatValue = 375.437f;
+ test.setFloatColumn(floatValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertTrue(Float.class.equals(columnValue.getClass())
+ || Double.class.equals(columnValue.getClass()));
+ assertEquals(floatValue.floatValue(), ((Number)columnValue).floatValue());
+ }
+
+ public void testFLOAT2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Float floatValue = 375.437f;
+ test.setFloatColumn(floatValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Float columnValue = testRead.getFloatColumn();
+ assertNotNull(columnValue);
+ assertEquals(Float.class, columnValue.getClass());
+ assertEquals(floatValue, columnValue);
+ }
+
+ public void testINTEGER() throws Exception {
+ String columnName = "INTEGER_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Integer integerValue = 54235;
+ test.setIntegerColumn(integerValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(Integer.class, columnValue.getClass());
+ assertEquals(integerValue, columnValue);
+ }
+
+ public void testINTEGER2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Integer integerValue = 54235;
+ test.setIntegerColumn(integerValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Integer columnValue = testRead.getIntegerColumn();
+ assertNotNull(columnValue);
+ assertEquals(Integer.class, columnValue.getClass());
+ assertEquals(integerValue, columnValue);
+ }
+
+ public void testLONGVARBINARY() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ String columnName = "LONGVARBINARY_COLUMN";
+ ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+
+ byte[] longvarbinaryValue = {
+ 3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+ };
+ test.setLongvarbinaryColumn(longvarbinaryValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(byte[].class, columnValue.getClass());
+ assertTrue(Arrays.equals(longvarbinaryValue, (byte[]) columnValue));
+ }
+ }
+
+ public void testLONGVARBINARY2() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+
+ byte[] longvarbinaryValue = {
+ 3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+ };
+ test.setLongvarbinaryColumn(longvarbinaryValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
+ ReturnTypesMap2 testRead = (ReturnTypesMap2) context.performQuery(q).get(0);
+ byte[] columnValue = testRead.getLongvarbinaryColumn();
+ assertNotNull(columnValue);
+ assertEquals(byte[].class, columnValue.getClass());
+ assertTrue(Arrays.equals(longvarbinaryValue, columnValue));
+ }
+ }
+
+ public void testLONGVARCHAR() throws Exception {
+ String columnName = "LONGVARCHAR_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0; i < 500; i++) {
+ buffer.append("LONGVARCHAR large string for tests!!!!\n");
+ }
+ String longvarcharValue = buffer.toString();
+ test.setLongvarcharColumn(longvarcharValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(String.class, columnValue.getClass());
+ assertEquals(longvarcharValue, columnValue);
+ }
+
+ public void testLONGVARCHAR2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ StringBuffer buffer = new StringBuffer();
+ for (int i = 0; i < 500; i++) {
+ buffer.append("LONGVARCHAR large string for tests!!!!\n");
+ }
+ String longvarcharValue = buffer.toString();
+ test.setLongvarcharColumn(longvarcharValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ String columnValue = testRead.getLongvarcharColumn();
+ assertNotNull(columnValue);
+ assertEquals(String.class, columnValue.getClass());
+ assertEquals(longvarcharValue, columnValue);
+ }
+
+ public void testNUMERIC() throws Exception {
+ String columnName = "NUMERIC_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ BigDecimal numericValue = new BigDecimal("578438.57843");
+ test.setNumericColumn(numericValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(BigDecimal.class, columnValue.getClass());
+ assertEquals(numericValue, columnValue);
+ }
+
+ public void testNUMERIC2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ BigDecimal numericValue = new BigDecimal("578438.57843");
+ test.setNumericColumn(numericValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ BigDecimal columnValue = testRead.getNumericColumn();
+ assertNotNull(columnValue);
+ assertEquals(BigDecimal.class, columnValue.getClass());
+ assertEquals(numericValue, columnValue);
+ }
+
+ public void testREAL() throws Exception {
+ String columnName = "REAL_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Float realValue = 5788.57843f;
+ test.setRealColumn(realValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+
+ // MySQL can treat REAL as either DOUBLE or FLOAT depending on the
+ // engine settings
+ if (unitDbAdapter.realAsDouble()) {
+ assertEquals(Double.class, columnValue.getClass());
+ assertEquals(Double.valueOf(realValue), (Double) columnValue, 0.0001);
+ } else {
+ assertEquals(Float.class, columnValue.getClass());
+ assertEquals(realValue, columnValue);
+ }
+ }
+
+ public void testREAL2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Float realValue = 5788.57843f;
+ test.setRealColumn(realValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Float columnValue = testRead.getRealColumn();
+ assertNotNull(columnValue);
+ assertEquals(Float.class, columnValue.getClass());
+ assertEquals(realValue, columnValue);
+ }
+
+ public void testSMALLINT() throws Exception {
+ String columnName = "SMALLINT_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Short smallintValue = 32564;
+ test.setSmallintColumn(smallintValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(Short.class, columnValue.getClass());
+ assertEquals(smallintValue, columnValue);
+ }
+
+ public void testSMALLINT2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Short smallintValue = 32564;
+ test.setSmallintColumn(smallintValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Short columnValue = testRead.getSmallintColumn();
+ assertNotNull(columnValue);
+ assertEquals(Short.class, columnValue.getClass());
+ assertEquals(smallintValue, columnValue);
+ }
+
+ public void testTIME() throws Exception {
+ String columnName = "TIME_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Calendar cal = Calendar.getInstance();
+ cal.clear();
+ cal.set(2003, 1, 1, 1, 20, 30);
+ Date timeValue = new Time(cal.getTime().getTime());
+ test.setTimeColumn(timeValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(Date.class, columnValue.getClass());
+ assertEquals(timeValue.toString(), new Time(((Date) columnValue).getTime())
+ .toString());
+ }
+
+ public void testTIME2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Calendar cal = Calendar.getInstance();
+ cal.clear();
+ cal.set(2003, 1, 1, 1, 20, 30);
+ Date timeValue = new Time(cal.getTime().getTime());
+ test.setTimeColumn(timeValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Date columnValue = testRead.getTimeColumn();
+ assertNotNull(columnValue);
+ assertEquals(Date.class, columnValue.getClass());
+ assertEquals(timeValue.toString(), new Time(columnValue.getTime()).toString());
+ }
+
+ public void testSQLTemplateTime() throws Exception {
+ DateTestEntity test = (DateTestEntity) context.newObject("DateTestEntity");
+
+ Calendar cal = Calendar.getInstance();
+ cal.clear();
+ cal.set(2003, 1, 1, 1, 20, 30);
+
+ // most databases fail millisecond accuracy
+ // cal.set(Calendar.MILLISECOND, 55);
+
+ Time now = new Time(cal.getTime().getTime());
+ test.setTimeColumn(now);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectDateTest");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Date columnValue = (Date) testRead.get("TIME_COLUMN");
+ assertNotNull(testRead.toString(), columnValue);
+ assertEquals(now.toString(), new Time(columnValue.getTime()).toString());
+ }
+
+ public void testTIMESTAMP() throws Exception {
+ String columnName = "TIMESTAMP_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Date timestampValue = Calendar.getInstance().getTime();
+ test.setTimestampColumn(timestampValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(Date.class, columnValue.getClass());
+
+ // some DB's, noteably MySQL, strip the milliseconds from timestamps,
+ // so comparing within 1 second precision
+ long delta = timestampValue.getTime() - ((Date) columnValue).getTime();
+ assertTrue(delta < 1000);
+ }
+
+ public void testTIMESTAMP2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Date timestampValue = Calendar.getInstance().getTime();
+ test.setTimestampColumn(timestampValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Date columnValue = testRead.getTimestampColumn();
+ assertNotNull(columnValue);
+ assertEquals(Date.class, columnValue.getClass());
+
+ // some DB's, noteably MySQL, strip the milliseconds from timestamps,
+ // so comparing within 1 second precision
+ long delta = timestampValue.getTime() - ((Date) columnValue).getTime();
+ assertTrue(delta < 1000); }
+
+ public void testTINYINT() throws Exception {
+ String columnName = "TINYINT_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Byte tinyintValue = 89;
+ test.setTinyintColumn(tinyintValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertTrue(Short.class.equals(columnValue.getClass()));
+ assertEquals(tinyintValue.intValue(), ((Number)columnValue).intValue());
+ }
+
+ public void testTINYINT2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ Byte tinyintValue = 89;
+ test.setTinyintColumn(tinyintValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ Byte columnValue = testRead.getTinyintColumn();
+ assertNotNull(columnValue);
+ assertEquals(Byte.class, columnValue.getClass());
+ assertEquals(tinyintValue, columnValue);
+ }
+
+ public void testVARBINARY() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ String columnName = "VARBINARY_COLUMN";
+ ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+
+ byte[] varbinaryValue = {
+ 3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+ };
+ test.setVarbinaryColumn(varbinaryValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(byte[].class, columnValue.getClass());
+ assertTrue(Arrays.equals(varbinaryValue, (byte[]) columnValue));
+ }
+ }
+
+ public void testVARBINARY2() throws Exception {
+ if (unitDbAdapter.supportsLobs()) {
+ ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+
+ byte[] varbinaryValue = {
+ 3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+ };
+ test.setVarbinaryColumn(varbinaryValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
+ ReturnTypesMap2 testRead = (ReturnTypesMap2) context.performQuery(q).get(0);
+ byte[] columnValue = testRead.getVarbinaryColumn();
+ assertNotNull(columnValue);
+ assertEquals(byte[].class, columnValue.getClass());
+ assertTrue(Arrays.equals(varbinaryValue, columnValue));
+ }
+ }
+
+ public void testVARCHAR() throws Exception {
+ String columnName = "VARCHAR_COLUMN";
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ String varcharValue = "VARChar string for tests!";
+ test.setVarcharColumn(varcharValue);
+ context.commitChanges();
+
+ NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
+ DataRow testRead = (DataRow) context.performQuery(q).get(0);
+ Object columnValue = testRead.get(columnName);
+ assertNotNull(columnValue);
+ assertEquals(String.class, columnValue.getClass());
+ assertEquals(varcharValue, columnValue);
+ }
+
+ public void testVARCHAR2() throws Exception {
+ ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+
+ String varcharValue = "VARChar string for tests!";
+ test.setVarcharColumn(varcharValue);
+ context.commitChanges();
+
+ SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
+ ReturnTypesMap1 testRead = (ReturnTypesMap1) context.performQuery(q).get(0);
+ String columnValue = testRead.getVarcharColumn();
+ assertNotNull(columnValue);
+ assertEquals(String.class, columnValue.getClass());
+ assertEquals(varcharValue, columnValue);
+ }
+}