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>