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>


Reply via email to