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);
+               }
+       }
+}


Reply via email to