Author: aadamchik
Date: Sun May 22 19:26:59 2011
New Revision: 1126190
URL: http://svn.apache.org/viewvc?rev=1126190&view=rev
Log:
unit test refactoring
convert SQLTemplateCustomizer to Cayenne DI
Added:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/SQLTemplateCustomizerProvider.java
Removed:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/CayenneResourcesSQLTemplateCustomizerProvider.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/dml/
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneResources.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/util/SQLTemplateCustomizer.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneResources.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneResources.java?rev=1126190&r1=1126189&r2=1126190&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneResources.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/CayenneResources.java
Sun May 22 19:26:59 2011
@@ -32,7 +32,6 @@ import org.apache.cayenne.conn.DataSourc
import org.apache.cayenne.conn.PoolDataSource;
import org.apache.cayenne.conn.PoolManager;
import org.apache.cayenne.dba.JdbcAdapter;
-import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
@@ -178,15 +177,6 @@ public class CayenneResources implements
return (AccessStack) beanFactory.getBean(name, AccessStack.class);
}
- public SQLTemplateCustomizer getSQLTemplateCustomizer() {
- BeanFactory child = (BeanFactory) beanFactory.getBean(
- SQL_TEMPLATE_CUSTOMIZER,
- BeanFactory.class);
- return (SQLTemplateCustomizer) child.getBean(
- SQL_TEMPLATE_CUSTOMIZER,
- SQLTemplateCustomizer.class);
- }
-
/**
* Returns DB-specific testing adapter.
*/
Added:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/SQLTemplateCustomizerProvider.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/SQLTemplateCustomizerProvider.java?rev=1126190&view=auto
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/SQLTemplateCustomizerProvider.java
(added)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/SQLTemplateCustomizerProvider.java
Sun May 22 19:26:59 2011
@@ -0,0 +1,83 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.unit.di.server;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.cayenne.ConfigurationException;
+import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.di.Inject;
+import org.apache.cayenne.di.Provider;
+import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
+
+public class SQLTemplateCustomizerProvider implements
Provider<SQLTemplateCustomizer> {
+
+ @Inject
+ private DbAdapter dbAdapter;
+
+ public SQLTemplateCustomizer get() throws ConfigurationException {
+ Map<String, Map<String, String>> map = new HashMap<String, Map<String,
String>>();
+
+ Map<String, String> q1 = new HashMap<String, String>();
+ q1.put(
+ "org.apache.cayenne.dba.postgres.PostgresAdapter",
+ "SELECT #result('ARTIST_ID'), RTRIM(#result('ARTIST_NAME')), "
+ + "#result('DATE_OF_BIRTH') FROM ARTIST ORDER BY
ARTIST_ID");
+ q1.put(
+ "org.apache.cayenne.dba.ingres.IngresAdapter",
+ "SELECT #result('ARTIST_ID'), TRIM(#result('ARTIST_NAME')), "
+ + "#result('DATE_OF_BIRTH') FROM ARTIST ORDER BY
ARTIST_ID");
+ q1.put(
+ "org.apache.cayenne.dba.openbase.OpenBaseAdapter",
+ "SELECT #result('ARTIST_ID'), #result('ARTIST_NAME'), "
+ + "#result('DATE_OF_BIRTH') FROM ARTIST ORDER BY
ARTIST_ID");
+
+ Map<String, String> q2 = new HashMap<String, String>();
+ q2.put(
+ "org.apache.cayenne.dba.postgres.PostgresAdapter",
+ "SELECT #result('ARTIST_ID'), RTRIM(#result('ARTIST_NAME')),
#result('DATE_OF_BIRTH') "
+ + "FROM ARTIST WHERE ARTIST_ID = #bind($id)");
+ q2.put(
+ "org.apache.cayenne.dba.ingres.IngresAdapter",
+ "SELECT #result('ARTIST_ID'), TRIM(#result('ARTIST_NAME')),
#result('DATE_OF_BIRTH') "
+ + "FROM ARTIST WHERE ARTIST_ID = #bind($id)");
+ q2.put(
+ "org.apache.cayenne.dba.openbase.OpenBaseAdapter",
+ "SELECT #result('ARTIST_ID'), #result('ARTIST_NAME'),
#result('DATE_OF_BIRTH') "
+ + "FROM ARTIST WHERE ARTIST_ID = #bind($id)");
+
+ Map<String, String> q3 = new HashMap<String, String>();
+ q3
+ .put(
+ "org.apache.cayenne.dba.oracle.OracleAdapter",
+ "UPDATE ARTIST SET ARTIST_NAME = #bind($newName) WHERE
RTRIM(ARTIST_NAME) = #bind($oldName)");
+ q3
+ .put(
+ "org.apache.cayenne.dba.oracle.Oracle8Adapter",
+ "UPDATE ARTIST SET ARTIST_NAME = #bind($newName) WHERE
RTRIM(ARTIST_NAME) = #bind($oldName)");
+
+ map.put("SELECT * FROM ARTIST ORDER BY ARTIST_ID", q1);
+ map.put("SELECT * FROM ARTIST WHERE ARTIST_ID = #bind($id)", q2);
+ map.put("UPDATE ARTIST SET ARTIST_NAME = #bind($newName) "
+ + "WHERE ARTIST_NAME = #bind($oldName)", q3);
+
+ return new SQLTemplateCustomizer(map, dbAdapter);
+ }
+}
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java?rev=1126190&r1=1126189&r2=1126190&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/di/server/ServerCaseModule.java
Sun May 22 19:26:59 2011
@@ -80,8 +80,8 @@ public class ServerCaseModule implements
ServerCaseBatchQueryBuilderFactoryProvider.class);
binder.bind(DataChannelInterceptor.class).to(
ServerCaseDataChannelInterceptor.class);
- binder.bind(SQLTemplateCustomizer.class).toProviderInstance(
- new CayenneResourcesSQLTemplateCustomizerProvider(resources));
+ binder.bind(SQLTemplateCustomizer.class).toProvider(
+ SQLTemplateCustomizerProvider.class);
// test-scoped objects
binder.bind(EntityResolver.class).toProvider(
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/util/SQLTemplateCustomizer.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/util/SQLTemplateCustomizer.java?rev=1126190&r1=1126189&r2=1126190&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/util/SQLTemplateCustomizer.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/util/SQLTemplateCustomizer.java
Sun May 22 19:26:59 2011
@@ -32,8 +32,10 @@ public class SQLTemplateCustomizer {
protected DbAdapter adapter;
protected Map<String, Map<String, String>> sqlMap;
- public SQLTemplateCustomizer(Map<String, Map<String, String>> sqlMap) {
+ public SQLTemplateCustomizer(Map<String, Map<String, String>> sqlMap,
+ DbAdapter adapter) {
this.sqlMap = sqlMap;
+ this.adapter = adapter;
}
/**
@@ -56,11 +58,4 @@ public class SQLTemplateCustomizer {
return template;
}
- public DbAdapter getAdapter() {
- return adapter;
- }
-
- public void setAdapter(DbAdapter adapter) {
- this.adapter = adapter;
- }
}
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml?rev=1126190&r1=1126189&r2=1126190&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/spring-test-resources.xml
Sun May 22 19:26:59 2011
@@ -204,12 +204,4 @@
</map>
</constructor-arg>
</bean>
-
- <!-- ======================================= -->
- <!-- SQLTemplate Customizer (external reference) -->
- <!-- ======================================= -->
- <bean id="SQLTemplateCustomizer"
class="org.apache.cayenne.unit.SpringResourceFactory">
-
<constructor-arg><value>dml/unit.util.SQLTemplateCustomizer.xml</value>
- </constructor-arg>
- </bean>
</beans>