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 2016/09/05 11:14:32 UTC
cayenne git commit: refactoring context iterator tests in a separate
class
Repository: cayenne
Updated Branches:
refs/heads/master aecf9aa31 -> 9a86dc506
refactoring context iterator tests in a separate class
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/9a86dc50
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/9a86dc50
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/9a86dc50
Branch: refs/heads/master
Commit: 9a86dc50653abaddfdefe3b5f1d76c57226b053f
Parents: aecf9aa
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Mon Sep 5 14:14:19 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Mon Sep 5 14:14:19 2016 +0300
----------------------------------------------------------------------
.../apache/cayenne/access/DataContextIT.java | 121 -----------
.../access/DataContextIteratedQueryIT.java | 209 +++++++++++++++++++
2 files changed, 209 insertions(+), 121 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/9a86dc50/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
index 2df2234..69a1e79 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIT.java
@@ -25,9 +25,6 @@ import org.apache.cayenne.DataRow;
import org.apache.cayenne.Fault;
import org.apache.cayenne.ObjectId;
import org.apache.cayenne.PersistenceState;
-import org.apache.cayenne.ResultBatchIterator;
-import org.apache.cayenne.ResultIterator;
-import org.apache.cayenne.ResultIteratorCallback;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
@@ -154,12 +151,6 @@ public class DataContextIT extends ServerCase {
tArtist.insert(33007, "artist21");
}
- protected void createLargeArtistsDataSet() throws Exception {
- for (int i = 1; i <= 20; i++) {
- tArtist.insert(i, "artist" + i);
- }
- }
-
protected void createArtistsAndPaintingsDataSet() throws Exception {
createArtistsDataSet();
@@ -622,118 +613,6 @@ public class DataContextIT extends ServerCase {
assertEquals(PersistenceState.COMMITTED, a1.getPersistenceState());
}
- @Test
- public void testIterate() throws Exception {
-
- createArtistsDataSet();
-
- SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class);
-
- final int[] count = new int[1];
-
- context.iterate(q1, new ResultIteratorCallback<Artist>() {
-
- @Override
- public void next(Artist object) {
- assertNotNull(object.getArtistName());
- count[0]++;
- }
- });
-
- assertEquals(7, count[0]);
- }
-
- @Test
- public void testIterateDataRows() throws Exception {
-
- createArtistsDataSet();
-
- SelectQuery<DataRow> q1 = SelectQuery.dataRowQuery(Artist.class, null);
- final int[] count = new int[1];
-
- context.iterate(q1, new ResultIteratorCallback<DataRow>() {
-
- @Override
- public void next(DataRow object) {
- assertNotNull(object.get("ARTIST_ID"));
- count[0]++;
- }
- });
-
- assertEquals(7, count[0]);
- }
-
- @Test
- public void testIterator() throws Exception {
-
- createArtistsDataSet();
-
- SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class);
-
- try (ResultIterator<Artist> it = context.iterator(q1);) {
- int count = 0;
-
- for (Artist a : it) {
- count++;
- }
-
- assertEquals(7, count);
- }
- }
-
- @Test
- public void testBatchIterator() throws Exception {
- createLargeArtistsDataSet();
-
- SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class);
-
- try (ResultBatchIterator<Artist> it = context.batchIterator(q1, 5);) {
- int count = 0;
-
- for (List<Artist> artistList : it) {
- count++;
- assertEquals(5, artistList.size());
- }
-
- assertEquals(4, count);
- }
- }
-
- @Test
- public void testPerformIteratedQuery1() throws Exception {
-
- createArtistsDataSet();
-
- SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class);
-
- try (ResultIterator<?> it = context.performIteratedQuery(q1);) {
- int count = 0;
- while (it.hasNextRow()) {
- it.nextRow();
- count++;
- }
-
- assertEquals(7, count);
- }
- }
-
- @Test
- public void testPerformIteratedQuery2() throws Exception {
- createArtistsAndPaintingsDataSet();
-
- try (ResultIterator<?> it = context.performIteratedQuery(SelectQuery.query(Artist.class));) {
- while (it.hasNextRow()) {
- DataRow row = (DataRow) it.nextRow();
-
- // try instantiating an object and fetching its relationships
- Artist artist = context.objectFromDataRow(Artist.class, row);
- List<?> paintings = artist.getPaintingArray();
- assertNotNull(paintings);
- assertEquals("Expected one painting for artist: " + artist, 1, paintings.size());
- }
- }
- }
-
/**
* Tests that hasChanges performs correctly when an object is "modified" and
* the property is simply set to the same value (an unreal modification)
http://git-wip-us.apache.org/repos/asf/cayenne/blob/9a86dc50/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIteratedQueryIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIteratedQueryIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIteratedQueryIT.java
new file mode 100644
index 0000000..b3e4326
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextIteratedQueryIT.java
@@ -0,0 +1,209 @@
+/*****************************************************************
+ * 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.ResultBatchIterator;
+import org.apache.cayenne.ResultIterator;
+import org.apache.cayenne.ResultIteratorCallback;
+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.testmap.Artist;
+import org.apache.cayenne.testdo.testmap.Painting;
+import org.apache.cayenne.unit.di.server.CayenneProjects;
+import org.apache.cayenne.unit.di.server.ServerCase;
+import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+@UseServerRuntime(CayenneProjects.TESTMAP_PROJECT)
+public class DataContextIteratedQueryIT extends ServerCase {
+
+ @Inject
+ protected DBHelper dbHelper;
+ @Inject
+ private DataContext context;
+ private TableHelper tArtist;
+ private TableHelper tExhibit;
+ private TableHelper tGallery;
+ private TableHelper tPainting;
+
+ @Before
+ public void before() throws Exception {
+ tArtist = new TableHelper(dbHelper, "ARTIST");
+ tArtist.setColumns("ARTIST_ID", "ARTIST_NAME");
+
+ tExhibit = new TableHelper(dbHelper, "EXHIBIT");
+ tExhibit.setColumns("EXHIBIT_ID", "GALLERY_ID", "OPENING_DATE", "CLOSING_DATE");
+
+ tGallery = new TableHelper(dbHelper, "GALLERY");
+ tGallery.setColumns("GALLERY_ID", "GALLERY_NAME");
+
+ tPainting = new TableHelper(dbHelper, "PAINTING");
+ tPainting.setColumns("PAINTING_ID", "PAINTING_TITLE", "ARTIST_ID", "ESTIMATED_PRICE");
+ }
+
+ private void createArtistsDataSet() throws Exception {
+ tArtist.insert(33001, "artist1");
+ tArtist.insert(33002, "artist2");
+ tArtist.insert(33003, "artist3");
+ tArtist.insert(33004, "artist4");
+ tArtist.insert(33005, "artist5");
+ tArtist.insert(33006, "artist11");
+ tArtist.insert(33007, "artist21");
+ }
+
+ protected void createArtistsAndPaintingsDataSet() throws Exception {
+ createArtistsDataSet();
+
+ tPainting.insert(33001, "P_artist1", 33001, 1000);
+ tPainting.insert(33002, "P_artist2", 33002, 2000);
+ tPainting.insert(33003, "P_artist3", 33003, 3000);
+ tPainting.insert(33004, "P_artist4", 33004, 4000);
+ tPainting.insert(33005, "P_artist5", 33005, 5000);
+ tPainting.insert(33006, "P_artist11", 33006, 11000);
+ tPainting.insert(33007, "P_artist21", 33007, 21000);
+ }
+
+ private void createLargeArtistsDataSet() throws Exception {
+ for (int i = 1; i <= 20; i++) {
+ tArtist.insert(i, "artist" + i);
+ }
+ }
+
+ @Test
+ public void testIterate() throws Exception {
+
+ createArtistsDataSet();
+
+ SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class);
+
+ final int[] count = new int[1];
+
+ context.iterate(q1, new ResultIteratorCallback<Artist>() {
+
+ @Override
+ public void next(Artist object) {
+ assertNotNull(object.getArtistName());
+ count[0]++;
+ }
+ });
+
+ assertEquals(7, count[0]);
+ }
+
+ @Test
+ public void testIterateDataRows() throws Exception {
+
+ createArtistsDataSet();
+
+ SelectQuery<DataRow> q1 = SelectQuery.dataRowQuery(Artist.class, null);
+ final int[] count = new int[1];
+
+ context.iterate(q1, new ResultIteratorCallback<DataRow>() {
+
+ @Override
+ public void next(DataRow object) {
+ assertNotNull(object.get("ARTIST_ID"));
+ count[0]++;
+ }
+ });
+
+ assertEquals(7, count[0]);
+ }
+
+ @Test
+ public void testIterator() throws Exception {
+
+ createArtistsDataSet();
+
+ SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class);
+
+ try (ResultIterator<Artist> it = context.iterator(q1);) {
+ int count = 0;
+
+ for (Artist a : it) {
+ count++;
+ }
+
+ assertEquals(7, count);
+ }
+ }
+
+ @Test
+ public void testBatchIterator() throws Exception {
+ createLargeArtistsDataSet();
+
+ SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class);
+
+ try (ResultBatchIterator<Artist> it = context.batchIterator(q1, 5);) {
+ int count = 0;
+
+ for (List<Artist> artistList : it) {
+ count++;
+ assertEquals(5, artistList.size());
+ }
+
+ assertEquals(4, count);
+ }
+ }
+
+
+ @Test
+ public void testPerformIteratedQuery_Count() throws Exception {
+
+ createArtistsDataSet();
+
+ SelectQuery<Artist> q1 = new SelectQuery<Artist>(Artist.class);
+
+ try (ResultIterator<?> it = context.performIteratedQuery(q1);) {
+ int count = 0;
+ while (it.hasNextRow()) {
+ it.nextRow();
+ count++;
+ }
+
+ assertEquals(7, count);
+ }
+ }
+
+ @Test
+ public void testPerformIteratedQuery_resolve() throws Exception {
+ createArtistsAndPaintingsDataSet();
+
+ try (ResultIterator<?> it = context.performIteratedQuery(SelectQuery.query(Artist.class));) {
+ while (it.hasNextRow()) {
+ DataRow row = (DataRow) it.nextRow();
+
+ // try instantiating an object and fetching its relationships
+ Artist artist = context.objectFromDataRow(Artist.class, row);
+ List<Painting> paintings = artist.getPaintingArray();
+ assertNotNull(paintings);
+ assertEquals("Expected one painting for artist: " + artist, 1, paintings.size());
+ }
+ }
+ }
+}