You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2008/08/16 05:57:49 UTC
svn commit: r686445 - in
/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted: ./
resultmap/
Author: cbegin
Date: Fri Aug 15 20:57:49 2008
New Revision: 686445
URL: http://svn.apache.org/viewvc?rev=686445&view=rev
Log:
added test submitted by Jeff on the mailing list
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Address.java
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PeerListResultTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Person.java
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PhoneNumber.java
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMap.xml
ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMapConfig.xml
Added: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Address.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Address.java?rev=686445&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Address.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Address.java Fri Aug 15 20:57:49 2008
@@ -0,0 +1,21 @@
+package submitted.resultmap;
+
+public class Address {
+ private Integer id;
+ private String address;
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public String getAddress() {
+ return address;
+ }
+ public void setAddress(String address) {
+ this.address = address;
+ }
+ public String toString() {
+ return address;
+ }
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PeerListResultTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PeerListResultTest.java?rev=686445&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PeerListResultTest.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PeerListResultTest.java Fri Aug 15 20:57:49 2008
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package submitted.resultmap;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import com.ibatis.common.resources.Resources;
+import com.ibatis.sqlmap.client.SqlMapClient;
+import com.ibatis.sqlmap.client.SqlMapClientBuilder;
+
+/**
+ * @author Jeff Butler
+ */
+public class PeerListResultTest extends TestCase {
+ private SqlMapClient sqlMapClient = null;
+
+ protected void setUp() throws Exception {
+ Connection conn = null;
+ Statement st = null;
+ boolean dbCreated = true;
+
+ try {
+ Class.forName("org.hsqldb.jdbcDriver");
+ conn = DriverManager.getConnection("jdbc:hsqldb:mem:aname", "sa", "");
+ st = conn.createStatement();
+ st.execute("drop table Person if exists");
+ st.execute("create table Person(personId int not null, name varchar(50), primary key (personId))");
+
+ st.execute("drop table PhoneNumber if exists");
+ st.execute("create table PhoneNumber(personId int not null, phoneId int not null, phoneNumber varchar(50), primary key (personId, phoneId))");
+
+ st.execute("drop table Address if exists");
+ st.execute("create table Address(personId int not null, addressId int not null, address varchar(50), primary key (personId, addressId))");
+
+ // setup Fred
+ st.execute("insert into Person (personId, name) values(1, 'Fred')");
+ st.execute("insert into PhoneNumber (personId, phoneId, phoneNumber) values(1, 1, '111-2222')");
+ st.execute("insert into PhoneNumber (personId, phoneId, phoneNumber) values(1, 2, '333-4444')");
+ st.execute("insert into Address (personId, addressId, address) values(1, 1, 'Main Street')");
+
+ // setup Wilma
+ st.execute("insert into Person (personId, name) values(2, 'Wilma')");
+ st.execute("insert into PhoneNumber (personId, phoneId, phoneNumber) values(2, 1, '555-6666')");
+ st.execute("insert into Address (personId, addressId, address) values(2, 1, 'Elm Street')");
+ st.execute("insert into Address (personId, addressId, address) values(2, 2, 'Maple Lane')");
+
+ } catch (Exception e) {
+ fail(e.getMessage());
+ dbCreated = false;
+ } finally {
+ try {
+ if (st != null) {
+ st.close();
+ }
+
+ if (conn != null) {
+ conn.close();
+ }
+ } catch (SQLException e) {
+ // ignore
+ ;
+ }
+ }
+
+ if (dbCreated) {
+ String resource = "submitted/resultmap/TestSqlMapConfig.xml";
+ try {
+ Reader reader = Resources.getResourceAsReader(resource);
+ sqlMapClient = SqlMapClientBuilder
+ .buildSqlMapClient(reader);
+ } catch (IOException e) {
+ fail(e.getMessage());
+ sqlMapClient = null;
+ }
+ }
+ }
+
+ public void test01() {
+
+ try {
+ List list = sqlMapClient.queryForList("TestSqlMap.test01", null);
+
+ System.out.println(list);
+
+ assertEquals(2, list.size());
+ Person person = (Person) list.get(0);
+ assertEquals("Fred", person.getName());
+ assertEquals(person.getAddresses().size(), 1);
+ assertEquals(person.getPhoneNumbers().size(), 2);
+
+ person = (Person) list.get(1);
+ assertEquals("Wilma", person.getName());
+ assertEquals(person.getAddresses().size(), 2);
+ assertEquals(person.getPhoneNumbers().size(), 1);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Person.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Person.java?rev=686445&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Person.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/Person.java Fri Aug 15 20:57:49 2008
@@ -0,0 +1,67 @@
+package submitted.resultmap;
+
+import java.util.List;
+
+public class Person {
+ private Integer id;
+ private String name;
+ private List phoneNumbers;
+ private List addresses;
+
+ public List getAddresses() {
+ return addresses;
+ }
+ public void setAddresses(List addresses) {
+ this.addresses = addresses;
+ }
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public List getPhoneNumbers() {
+ return phoneNumbers;
+ }
+ public void setPhoneNumbers(List phoneNumbers) {
+ this.phoneNumbers = phoneNumbers;
+ }
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ sb.append("Name: ");
+ sb.append(name);
+
+ if (phoneNumbers != null && phoneNumbers.size() > 0) {
+ sb.append(" Phone Numbers: <");
+
+ for (int i = 0; i < phoneNumbers.size(); i++) {
+ if (i > 0) {
+ sb.append(" ");
+ }
+ sb.append(phoneNumbers.get(i));
+ }
+ sb.append(">");
+ }
+
+ if (addresses != null && addresses.size() > 0) {
+ sb.append(" Addresses: <");
+
+ for (int i = 0; i < addresses.size(); i++) {
+ if (i > 0) {
+ sb.append(" ");
+ }
+ sb.append(addresses.get(i));
+ }
+ sb.append(">");
+ }
+
+ return sb.toString();
+ }
+
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PhoneNumber.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PhoneNumber.java?rev=686445&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PhoneNumber.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/PhoneNumber.java Fri Aug 15 20:57:49 2008
@@ -0,0 +1,21 @@
+package submitted.resultmap;
+
+public class PhoneNumber {
+ private Integer id;
+ private String number;
+ public Integer getId() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public String getNumber() {
+ return number;
+ }
+ public void setNumber(String number) {
+ this.number = number;
+ }
+ public String toString() {
+ return number;
+ }
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMap.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMap.xml?rev=686445&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMap.xml (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMap.xml Fri Aug 15 20:57:49 2008
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sqlMap
+ PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
+ "http://ibatis.apache.org/dtd/sql-map-2.dtd">
+<sqlMap namespace="TestSqlMap">
+
+ <resultMap id="addressResult" class="submitted.resultmap.Address">
+ <result property="id" column="addressId"/>
+ <result property="address" column="address"/>
+ </resultMap>
+
+ <resultMap id="phoneResult" class="submitted.resultmap.PhoneNumber">
+ <result property="id" column="phoneId"/>
+ <result property="number" column="phoneNumber"/>
+ </resultMap>
+
+ <resultMap id="personResult" class="submitted.resultmap.Person" groupBy="id">
+ <result property="id" column="personId"/>
+ <result property="name" column="name"/>
+ <result property="addresses" resultMap="TestSqlMap.addressResult"/>
+ <result property="phoneNumbers" resultMap="TestSqlMap.phoneResult"/>
+ </resultMap>
+
+ <select id="test01" resultMap="personResult" >
+ select personId, name, addressId, address, phoneId, phoneNumber
+ from Person join PhoneNumber on Person.personId = PhoneNumber.personId
+ join Address on Person.personId = Address.personId
+ order by personId
+ </select>
+
+</sqlMap>
Added: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMapConfig.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMapConfig.xml?rev=686445&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMapConfig.xml (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/test/java/submitted/resultmap/TestSqlMapConfig.xml Fri Aug 15 20:57:49 2008
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE sqlMapConfig
+ PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
+ "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
+
+<sqlMapConfig>
+
+ <settings useStatementNamespaces="true"
+ cacheModelsEnabled="false"
+ enhancementEnabled="false"
+ lazyLoadingEnabled="false"/>
+
+ <transactionManager type="JDBC">
+ <dataSource type="SIMPLE">
+ <property name="JDBC.Driver" value="org.hsqldb.jdbcDriver"/>
+ <property name="JDBC.ConnectionURL" value="jdbc:hsqldb:mem:aname"/>
+ <property name="JDBC.Username" value="sa"/>
+ <property name="JDBC.Password" value=""/>
+ <property name="JDBC.DefaultAutoCommit" value="true"/>
+
+ <property value="15" name="Pool.MaximumActiveConnections"/>
+ <property value="15" name="Pool.MaximumIdleConnections"/>
+ <property value="1000" name="Pool.MaximumWait"/>
+
+ <property name="useUnicode" value="true"/>
+ <property name="characterEncoding" value="UTF-8"/>
+
+ <!-- ping query -->
+ <property name="Pool.PingQuery" value="select 1 from contact2"/>
+ <property name="Pool.PingEnabled" value="true"/>
+ <property name="Pool.PingConnectionsNotUsedFor" value="60000"/>
+
+ </dataSource>
+ </transactionManager>
+
+ <sqlMap resource="submitted/resultmap/TestSqlMap.xml" />
+
+</sqlMapConfig>