cbegin
Tue, 10 Nov 2009 20:46:39 -0800
Author: cbegin Date: Wed Nov 11 04:46:06 2009 New Revision: 834766 URL: http://svn.apache.org/viewvc?rev=834766&view=rev Log: IBATIS-659 unit tests for quoted column names
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/CreateDB.sql
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/Map.xml
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/MapperConfig.xml
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/QuotedColumnNamesTest.java
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/CreateDB.sql
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/CreateDB.sql?rev=834766&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/CreateDB.sql
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/CreateDB.sql
Wed Nov 11 04:46:06 2009
@@ -0,0 +1,12 @@
+create table names (
+ ID int,
+ FIRST_NAME varchar(20),
+ LAST_NAME varchar(20)
+);
+
+insert into names (ID, FIRST_NAME, LAST_NAME) values(1, 'Fred', 'Flintstone');
+insert into names (ID, FIRST_NAME, LAST_NAME) values(2, 'Wilma', 'Flintstone');
+insert into names (ID, FIRST_NAME, LAST_NAME) values(3, 'Pebbles',
'Flintstone');
+insert into names (ID, FIRST_NAME, LAST_NAME) values(4, 'Barney', 'Rubble');
+insert into names (ID, FIRST_NAME, LAST_NAME) values(5, 'Betty', 'Rubble');
+insert into names (ID, FIRST_NAME, LAST_NAME) values(6, 'Bamm Bamm', 'Rubble');
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/Map.xml
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/Map.xml?rev=834766&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/Map.xml
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/Map.xml
Wed Nov 11 04:46:06 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
+<mapper namespace="org.apache.ibatis.submitted.quotedcolumnnames.Map">
+
+ <select id="doSelect" resultType="java.util.HashMap">
+ select
+ ID as "id",
+ FIRST_NAME as "firstName",
+ LAST_NAME as "lastName"
+ from names
+ </select>
+
+
+ <resultMap id="myResultMap" type="java.util.HashMap">
+ <result column="id" property="ID" javaType="java.lang.String"/>
+ <result column="FIRST_NAME" property="firstName"
javaType="java.lang.String" />
+ <result column="LAST_NAME" property="lastName"
javaType="java.lang.String"/>
+ </resultMap>
+
+ <select id="doSelectWithResultMap" resultMap="myResultMap">
+ select *
+ from names
+ </select>
+</mapper>
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/MapperConfig.xml
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/MapperConfig.xml?rev=834766&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/MapperConfig.xml
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/MapperConfig.xml
Wed Nov 11 04:46:06 2009
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE configuration
+ PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
+ "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
+<configuration>
+
+ <settings>
+ <setting name="useColumnLabel" value="true" />
+ </settings>
+
+ <environments default="development">
+ <environment id="development">
+ <transactionManager type="JDBC">
+ <property name="" value="" />
+ </transactionManager>
+ <dataSource type="UNPOOLED">
+ <property name="driver"
value="org.hsqldb.jdbcDriver" />
+ <property name="url"
value="jdbc:hsqldb:mem:gname" />
+ <property name="username" value="sa" />
+ </dataSource>
+ </environment>
+ </environments>
+
+ <mappers>
+ <mapper
resource="org/apache/ibatis/submitted/quotedcolumnnames/Map.xml" />
+ </mappers>
+
+</configuration>
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/QuotedColumnNamesTest.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/QuotedColumnNamesTest.java?rev=834766&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/QuotedColumnNamesTest.java
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/quotedcolumnnames/QuotedColumnNamesTest.java
Wed Nov 11 04:46:06 2009
@@ -0,0 +1,90 @@
+package org.apache.ibatis.submitted.quotedcolumnnames;
+
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.jdbc.ScriptRunner;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSessionFactoryBuilder;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class QuotedColumnNamesTest {
+
+ protected static SqlSessionFactory sqlSessionFactory;
+
+ @BeforeClass
+ public static void setUp() throws Exception {
+ Connection conn = null;
+
+ try {
+ Class.forName("org.hsqldb.jdbcDriver");
+ conn =
DriverManager.getConnection("jdbc:hsqldb:mem:gname", "sa", "");
+ Reader reader =
Resources.getResourceAsReader("org/apache/ibatis/submitted/quotedcolumnnames/CreateDB.sql");
+ ScriptRunner runner = new ScriptRunner(conn);
+ runner.setLogWriter(null);
+ runner.setErrorLogWriter(new PrintWriter(System.err));
+ runner.runScript(reader);
+ conn.commit();
+ reader.close();
+
+ reader =
Resources.getResourceAsReader("org/apache/ibatis/submitted/quotedcolumnnames/MapperConfig.xml");
+ sqlSessionFactory = new
SqlSessionFactoryBuilder().build(reader);
+ reader.close();
+
+ } finally {
+ if (conn != null) {
+ conn.close();
+ }
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testIt() {
+ SqlSession sqlSession = sqlSessionFactory.openSession();
+ try {
+ List<Map<String, Object>> list =
sqlSession.selectList("org.apache.ibatis.submitted.quotedcolumnnames.Map.doSelect");
+ printList(list);
+ assertColumnNames(list);
+ } finally {
+ sqlSession.close();
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testItWithResultMap() {
+ SqlSession sqlSession = sqlSessionFactory.openSession();
+ try {
+ List<Map<String, Object>> list =
sqlSession.selectList("org.apache.ibatis.submitted.quotedcolumnnames.Map.doSelectWithResultMap");
+ printList(list);
+ assertColumnNames(list);
+ } finally {
+ sqlSession.close();
+ }
+ }
+
+ private void assertColumnNames(List<Map<String, Object>> list) {
+ Map<String, Object> record = list.get(0);
+
+ Assert.assertTrue(record.containsKey("firstName"));
+ Assert.assertTrue(record.containsKey("lastName"));
+
+ Assert.assertFalse(record.containsKey("FIRST_NAME"));
+ Assert.assertFalse(record.containsKey("LAST_NAME"));
+ }
+
+ private void printList(List<Map<String, Object>> list) {
+ for (Map<String, Object> map : list) {
+ System.out.println(map);
+ }
+ }
+}