Author: cbegin
Date: Sat Dec 5 06:08:42 2009
New Revision: 887505
URL: http://svn.apache.org/viewvc?rev=887505&view=rev
Log:
adding test from ibatis 693
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Bar.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Foo.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/create-schema-mysql.sql
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Bar.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Bar.java?rev=887505&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Bar.java
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Bar.java
Sat Dec 5 06:08:42 2009
@@ -0,0 +1,24 @@
+package org.apache.ibatis.submitted.overwritingproperties;
+
+import java.io.Serializable;
+
+public class Bar implements Serializable {
+
+ private Long field1;
+
+ public Bar() {
+ super();
+ }
+
+ public Bar(long field1) {
+ this.field1 = field1;
+ }
+
+ public Long getField1() {
+ return field1;
+ }
+
+ public void setField1(Long field1) {
+ this.field1 = field1;
+ }
+}
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Foo.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Foo.java?rev=887505&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Foo.java
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/Foo.java
Sat Dec 5 06:08:42 2009
@@ -0,0 +1,54 @@
+package org.apache.ibatis.submitted.overwritingproperties;
+
+import java.io.Serializable;
+
+public class Foo implements Serializable {
+
+ private Long field1;
+ private Bar field2;
+ private Integer field3;
+ private Integer field4;
+
+ public Foo() {
+ super();
+ }
+
+ public Foo(Long field1, Bar field2, Integer field3, Integer field4) {
+ this.field1 = field1;
+ this.field2 = field2;
+ this.field3 = field3;
+ this.field4 = field4;
+ }
+
+ public Long getField1() {
+ return field1;
+ }
+
+ public void setField1(Long field1) {
+ this.field1 = field1;
+ }
+
+ public Bar getField2() {
+ return field2;
+ }
+
+ public void setField2(Bar field2) {
+ this.field2 = field2;
+ }
+
+ public Integer getField3() {
+ return field3;
+ }
+
+ public void setField3(Integer field3) {
+ this.field3 = field3;
+ }
+
+ public Integer getField4() {
+ return field4;
+ }
+
+ public void setField4(Integer field4) {
+ this.field4 = field4;
+ }
+}
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.java?rev=887505&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.java
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.java
Sat Dec 5 06:08:42 2009
@@ -0,0 +1,11 @@
+package org.apache.ibatis.submitted.overwritingproperties;
+
+public interface FooMapper {
+
+ void insertFoo(Foo foo);
+
+ Foo selectFoo();
+
+ int deleteAllFoo();
+
+}
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml?rev=887505&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml
Sat Dec 5 06:08:42 2009
@@ -0,0 +1,44 @@
+<?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.overwritingproperties.FooMapper">
+
+ <resultMap type="Foo" id="fooResult">
+ <result property="field1" column="field1" jdbcType="INTEGER"/>
+ <!--<result property="field4" column="field3" jdbcType="INTEGER"/>-->
+ <result property="field3" column="field4" jdbcType="INTEGER"/>
+ <association property="field2" javaType="Bar">
+ <result property="field1" column="bar_field1" jdbcType="INTEGER"/>
+ </association>
+ </resultMap>
+
+ <insert id="insertFoo" parameterType="Foo">
+ insert into FOO
+ (
+ field1,
+ field2,
+ field3,
+ field4
+ )
+ values
+ (
+ #{field1,jdbcType=INTEGER},
+ #{field2.field1,jdbcType=INTEGER},
+ #{field4,jdbcType=INTEGER},
+ #{field3,jdbcType=INTEGER}
+ )
+ </insert>
+
+ <select id="selectFoo" resultMap="fooResult">
+ select
+ field1,
+ field2 as bar_field1,
+ field3,
+ field4
+ from FOO;
+ </select>
+
+ <delete id="deleteAllFoo">
+ delete from FOO;
+ </delete>
+
+</mapper>
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java?rev=887505&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java
Sat Dec 5 06:08:42 2009
@@ -0,0 +1,68 @@
+package org.apache.ibatis.submitted.overwritingproperties;
+
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.jdbc.ScriptRunner;
+import org.apache.ibatis.session.*;
+import org.junit.*;
+
+import java.io.Reader;
+import java.sql.Connection;
+
+/**
+ * @author jjensen
+ */
+public class FooMapperTest {
+
+ private final static String SQL_MAP_CONFIG =
"org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml";
+ private static SqlSession session;
+
+ @BeforeClass
+ public static void setUpBeforeClass() {
+ try {
+ final SqlSessionFactory factory = new
SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(SQL_MAP_CONFIG));
+ session = factory.openSession();
+ Connection conn = session.getConnection();
+ ScriptRunner runner = new ScriptRunner(conn);
+ Reader reader =
Resources.getResourceAsReader("org/apache/ibatis/submitted/overwritingproperties/create-schema-mysql.sql");
+ runner.runScript(reader);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ @Before
+ public void setUp() {
+ final FooMapper mapper = session.getMapper(FooMapper.class);
+ mapper.deleteAllFoo();
+ session.commit();
+ }
+
+ @Test
+ public void testOverwriteWithDefault() {
+ final FooMapper mapper = session.getMapper(FooMapper.class);
+ final Bar bar = new Bar(2L);
+ final Foo foo = new Foo(1L, bar, 3, 4);
+ mapper.insertFoo(foo);
+ session.commit();
+ final Foo read = mapper.selectFoo();
+
+ // field1 is explicitly mapped properly
+ Assert.assertEquals(foo.getField1(), read.getField1());
+
+ // field4 is explicitly remapped to field3 in the resultmap
+ Assert.assertEquals(foo.getField4(), read.getField3());
+
+ // field4 is not mapped in the result map
+ Assert.assertEquals(null, read.getField4() );
+
+ // is automapped from the only column that matches... which is Field1
+ // probably not the intention, but it's working correctly given the code
+ Assert.assertEquals(1, read.getField2().getField1());
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() {
+ session.close();
+ }
+
+}
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/create-schema-mysql.sql
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/create-schema-mysql.sql?rev=887505&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/create-schema-mysql.sql
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/create-schema-mysql.sql
Sat Dec 5 06:08:42 2009
@@ -0,0 +1,7 @@
+CREATE TABLE FOO
+(
+field1 integer,
+field2 integer,
+field3 integer,
+field4 integer
+);
Added:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml?rev=887505&view=auto
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml
(added)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml
Sat Dec 5 06:08:42 2009
@@ -0,0 +1,33 @@
+<?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="cacheEnabled" value="true"/>
+ <setting name="lazyLoadingEnabled" value="true"/>
+ <setting name="multipleResultSetsEnabled" value="true"/>
+ <setting name="useColumnLabel" value="true"/>
+ <setting name="useGeneratedKeys" value="false"/>
+ <setting name="defaultExecutorType" value="BATCH"/>
+ <setting name="defaultStatementTimeout" value="25000"/>
+ </settings>
+ <typeAliases>
+ <typeAlias type="org.apache.ibatis.submitted.overwritingproperties.Foo"
alias="Foo"/>
+ <typeAlias type="org.apache.ibatis.submitted.overwritingproperties.Bar"
alias="Bar"/>
+ </typeAliases>
+ <environments default="development">
+ <environment id="development">
+ <transactionManager type="JDBC">
+ <property name="" value=""/>
+ </transactionManager>
+ <dataSource type="POOLED">
+ <property name="driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="url" value="jdbc:hsqldb:mem:cname"/>
+ <property name="username" value="sa"/>
+ </dataSource>
+ </environment>
+ </environments>
+ <mappers>
+ <mapper
resource="org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml"/>
+ </mappers>
+</configuration>