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 2015/05/03 13:10:09 UTC
cayenne git commit: rewriting the unit test to avoid manual
connection management
Repository: cayenne
Updated Branches:
refs/heads/master 57a04d207 -> 69be1dc00
rewriting the unit test to avoid manual connection management
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/69be1dc0
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/69be1dc0
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/69be1dc0
Branch: refs/heads/master
Commit: 69be1dc00d619a715a96b528769fb7e3d555a285
Parents: 57a04d2
Author: aadamchik <aa...@apache.org>
Authored: Sun May 3 07:10:01 2015 -0400
Committer: aadamchik <aa...@apache.org>
Committed: Sun May 3 07:10:01 2015 -0400
----------------------------------------------------------------------
.../cayenne/velocity/ResultDirectiveIT.java | 84 +++++---------------
1 file changed, 22 insertions(+), 62 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/69be1dc0/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java b/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
index d91bcfd..ceca0de 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/velocity/ResultDirectiveIT.java
@@ -19,29 +19,26 @@
package org.apache.cayenne.velocity;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import java.sql.Connection;
+import java.sql.SQLException;
import java.util.Collections;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.cayenne.DataRow;
import org.apache.cayenne.access.DataNode;
import org.apache.cayenne.access.MockOperationObserver;
-import org.apache.cayenne.access.jdbc.SQLTemplateAction;
import org.apache.cayenne.configuration.server.ServerRuntime;
import org.apache.cayenne.dba.JdbcAdapter;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.query.CapsStrategy;
import org.apache.cayenne.query.SQLTemplate;
-import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
+import org.apache.cayenne.test.jdbc.TableHelper;
import org.apache.cayenne.testdo.testmap.Artist;
import org.apache.cayenne.unit.di.server.CayenneProjects;
import org.apache.cayenne.unit.di.server.ServerCase;
-import org.apache.cayenne.unit.di.server.ServerCaseDataSourceFactory;
import org.apache.cayenne.unit.di.server.UseServerRuntime;
+import org.junit.Before;
import org.junit.Test;
/**
@@ -61,47 +58,48 @@ public class ResultDirectiveIT extends ServerCase {
private DataNode node;
@Inject
- private ServerCaseDataSourceFactory dataSourceFactory;
+ protected DBHelper dbHelper;
+
+ @Before
+ public void before() throws SQLException {
+ new TableHelper(dbHelper, "ARTIST").setColumns("ARTIST_ID", "ARTIST_NAME").insert(1l, "ArtistToTestResult");
+ }
@Test
public void testWithoutResultDirective() throws Exception {
String sql = "SELECT ARTIST_ID, ARTIST_NAME FROM ARTIST";
- Map<String, Object> artist = insertArtist();
Map<String, Object> selectResult = selectForQuery(sql);
- assertEquals(artist.get("ARTIST_ID"), selectResult.get("ARTIST_ID"));
- assertEquals(artist.get("ARTIST_NAME"), selectResult.get("ARTIST_NAME"));
+ assertEquals(1l, selectResult.get("ARTIST_ID"));
+ assertEquals("ArtistToTestResult", selectResult.get("ARTIST_NAME"));
}
@Test
public void testWithOnlyResultDirective() throws Exception {
- String sql = "SELECT #result('ARTIST_ID' 'java.lang.Integer')," + " #result('ARTIST_NAME' 'java.lang.String')"
+ String sql = "SELECT #result('ARTIST_ID' 'java.lang.Integer'), #result('ARTIST_NAME' 'java.lang.String')"
+ " FROM ARTIST";
- Map<String, Object> artist = insertArtist();
Map<String, Object> selectResult = selectForQuery(sql);
- assertEquals(artist.get("ARTIST_ID"), selectResult.get("ARTIST_ID"));
- assertEquals(artist.get("ARTIST_NAME"), selectResult.get("ARTIST_NAME").toString().trim());
+ assertEquals(1l, selectResult.get("ARTIST_ID"));
+ assertEquals("ArtistToTestResult", selectResult.get("ARTIST_NAME").toString().trim());
}
@Test
public void testWithMixedDirectiveUse1() throws Exception {
- String sql = "SELECT ARTIST_ID," + " #result('ARTIST_NAME' 'java.lang.String')" + " FROM ARTIST";
- Map<String, Object> artist = insertArtist();
+ String sql = "SELECT ARTIST_ID, #result('ARTIST_NAME' 'java.lang.String') FROM ARTIST";
Map<String, Object> selectResult = selectForQuery(sql);
- assertEquals(artist.get("ARTIST_ID"), selectResult.get("ARTIST_ID"));
- assertEquals(artist.get("ARTIST_NAME"), selectResult.get("ARTIST_NAME").toString().trim());
+ assertEquals(1l, selectResult.get("ARTIST_ID"));
+ assertEquals("ArtistToTestResult", selectResult.get("ARTIST_NAME").toString().trim());
}
@Test
public void testWithMixedDirectiveUse2() throws Exception {
- String sql = "SELECT #result('ARTIST_ID' 'java.lang.Integer')," + " ARTIST_NAME " + " FROM ARTIST";
- Map<String, Object> artist = insertArtist();
+ String sql = "SELECT #result('ARTIST_ID' 'java.lang.Integer'), ARTIST_NAME FROM ARTIST";
Map<String, Object> selectResult = selectForQuery(sql);
- assertEquals(artist.get("ARTIST_ID"), selectResult.get("ARTIST_ID"));
- assertEquals(artist.get("ARTIST_NAME"), selectResult.get("ARTIST_NAME"));
+ assertEquals(1l, selectResult.get("ARTIST_ID"));
+ assertEquals("ArtistToTestResult", selectResult.get("ARTIST_NAME"));
}
private Map<String, Object> selectForQuery(String sql) {
@@ -110,49 +108,11 @@ public class ResultDirectiveIT extends ServerCase {
MockOperationObserver observer = new MockOperationObserver();
runtime.getDataDomain().performQueries(Collections.singletonList(template), observer);
+ @SuppressWarnings("unchecked")
List<Map<String, Object>> data = observer.rowsForQuery(template);
assertEquals(1, data.size());
Map<String, Object> row = data.get(0);
return row;
}
- /**
- * Inserts one Artist
- */
- private Map<String, Object> insertArtist() throws Exception {
- Map<String, Object> parameters = new HashMap<String, Object>();
- parameters.put("id", 1);
- parameters.put("name", "ArtistToTestResult");
- String templateString = "INSERT INTO ARTIST (ARTIST_ID, ARTIST_NAME, DATE_OF_BIRTH) "
- + "VALUES (#bind($id), #bind($name), #bind($dob))";
-
- SQLTemplate template = new SQLTemplate(Object.class, templateString);
-
- template.setParams(parameters);
-
- SQLTemplateAction action = new SQLTemplateAction(template, node);
-
- Connection c = dataSourceFactory.getSharedDataSource().getConnection();
- try {
- MockOperationObserver observer = new MockOperationObserver();
- action.performAction(c, observer);
- c.commit();
-
- int[] batches = observer.countsForQuery(template);
- assertNotNull(batches);
- assertEquals(1, batches.length);
- assertEquals(1, batches[0]);
- } finally {
- c.close();
- }
-
- MockOperationObserver observer = new MockOperationObserver();
- SelectQuery query = new SelectQuery(Artist.class);
- runtime.getDataDomain().performQueries(Collections.singletonList(query), observer);
-
- List<?> data = observer.rowsForQuery(query);
- assertEquals(1, data.size());
- DataRow row = (DataRow) data.get(0);
- return row;
- }
}