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