Added: ibatis/trunk/java/tools/ibator/core/testJava2/ibatortest/java2/ibatorConfig.xml URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/testJava2/ibatortest/java2/ibatorConfig.xml?rev=648102&view=auto ============================================================================== --- ibatis/trunk/java/tools/ibator/core/testJava2/ibatortest/java2/ibatorConfig.xml (added) +++ ibatis/trunk/java/tools/ibator/core/testJava2/ibatortest/java2/ibatorConfig.xml Mon Apr 14 19:32:53 2008 @@ -0,0 +1,151 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE ibatorConfiguration + PUBLIC "-//Apache Software Foundation//DTD iBATOR for iBATIS Configuration 1.0//EN" + "http://ibatis.apache.org/dtd/ibator-config_1_0.dtd"> + +<ibatorConfiguration> + + <ibatorContext generatorSet="Java2" defaultModelType="flat"> + <jdbcConnection driverClass="org.hsqldb.jdbcDriver" + connectionURL="jdbc:hsqldb:mem:aname" + userId="sa" /> + + <javaModelGenerator targetPackage="ibatortest.java2.generated.flat.java2.model" targetProject="${generated.source.dir.java2}"> + <property name="enableSubPackages" value="true" /> + <property name="trimStrings" value="true" /> + </javaModelGenerator> + + <sqlMapGenerator targetPackage="ibatortest.java2.generated.flat.java2.xml" targetProject="${generated.source.dir.java2}"> + <property name="enableSubPackages" value="true" /> + </sqlMapGenerator> + + <daoGenerator type="GENERIC-CI" targetPackage="ibatortest.java2.generated.flat.java2.dao" targetProject="${generated.source.dir.java2}"> + <property name="enableSubPackages" value="true" /> + </daoGenerator> + + <table tableName="FieldsOnly" /> + <table tableName="PKOnly" /> + <table tableName="PKFields" /> + <table tableName="PKBlobs" /> + <table tableName="PKFieldsBlobs" /> + <table tableName="FieldsBlobs" /> + <table tableName="awful table" alias="A"> + <property name="useColumnIndexes" value="true"/> + <generatedKey column="CuStOmEr iD" sqlStatement="HSQLDB" identity="true" /> + <columnOverride column="customer id" property="secondCustomerId" /> + <columnOverride column="first name" property="firstFirstName" /> + <columnOverride column="First Name" property="secondFirstName" /> + <ignoreColumn column="first Name" /> + <columnOverride column="first_name" property="thirdFirstName" /> + <columnOverride column="firstName" property="fourthFirstName" /> + <columnOverride column="from" delimitedColumnName="true" /> + </table> + </ibatorContext> + + <ibatorContext generatorSet="Java2" defaultModelType="hierarchical"> + <jdbcConnection driverClass="org.hsqldb.jdbcDriver" + connectionURL="jdbc:hsqldb:mem:aname" + userId="sa" /> + + <javaModelGenerator targetPackage="ibatortest.java2.generated.hierarchical.java2.model" targetProject="${generated.source.dir.java2}"> + <property name="enableSubPackages" value="true" /> + <property name="trimStrings" value="true" /> + </javaModelGenerator> + + <sqlMapGenerator targetPackage="ibatortest.java2.generated.hierarchical.java2.xml" targetProject="${generated.source.dir.java2}"> + <property name="enableSubPackages" value="true" /> + </sqlMapGenerator> + + <daoGenerator type="GENERIC-CI" targetPackage="ibatortest.java2.generated.hierarchical.java2.dao" targetProject="${generated.source.dir.java2}"> + <property name="enableSubPackages" value="true" /> + </daoGenerator> + + <table tableName="FieldsOnly" /> + <table tableName="PKOnly" /> + <table tableName="PKFields" /> + <table tableName="PKBlobs" /> + <table tableName="PKFieldsBlobs" /> + <table tableName="FieldsBlobs" /> + <table tableName="awful table" alias="A"> + <property name="useColumnIndexes" value="true"/> + <generatedKey column="CuStOmEr iD" sqlStatement="HSQLDB" identity="true" /> + <columnOverride column="customer id" property="secondCustomerId" /> + <columnOverride column="first name" property="firstFirstName" /> + <columnOverride column="First Name" property="secondFirstName" /> + <ignoreColumn column="first Name" /> + <columnOverride column="first_name" property="thirdFirstName" /> + <columnOverride column="firstName" property="fourthFirstName" /> + <columnOverride column="from" delimitedColumnName="true" /> + </table> + </ibatorContext> + + <ibatorContext generatorSet="Java2" defaultModelType="conditional"> + <jdbcConnection driverClass="org.hsqldb.jdbcDriver" + connectionURL="jdbc:hsqldb:mem:aname" + userId="sa" /> + + <javaModelGenerator targetPackage="ibatortest.java2.generated.conditional.java2.model" targetProject="${generated.source.dir.java2}"> + <property name="enableSubPackages" value="true" /> + <property name="trimStrings" value="true" /> + </javaModelGenerator> + + <sqlMapGenerator targetPackage="ibatortest.java2.generated.conditional.java2.xml" targetProject="${generated.source.dir.java2}"> + <property name="enableSubPackages" value="true" /> + </sqlMapGenerator> + + <daoGenerator type="GENERIC-CI" targetPackage="ibatortest.java2.generated.conditional.java2.dao" targetProject="${generated.source.dir.java2}"> + <property name="enableSubPackages" value="true" /> + </daoGenerator> + + <table tableName="FieldsOnly" /> + <table tableName="PKOnly" /> + <table tableName="PKFields" /> + <table tableName="PKBlobs" /> + <table tableName="PKFieldsBlobs" /> + <table tableName="FieldsBlobs" /> + <table tableName="awful table" alias="A"> + <property name="useColumnIndexes" value="true"/> + <generatedKey column="CuStOmEr iD" sqlStatement="HSQLDB" identity="true" /> + <columnOverride column="customer id" property="secondCustomerId" /> + <columnOverride column="first name" property="firstFirstName" /> + <columnOverride column="First Name" property="secondFirstName" /> + <ignoreColumn column="first Name" /> + <columnOverride column="first_name" property="thirdFirstName" /> + <columnOverride column="firstName" property="fourthFirstName" /> + <columnOverride column="from" delimitedColumnName="true" /> + </table> + </ibatorContext> + + <ibatorContext id="miscellaneousTests" generatorSet="Java2"> + <jdbcConnection driverClass="org.hsqldb.jdbcDriver" + connectionURL="jdbc:hsqldb:mem:aname" + userId="sa" /> + + <javaModelGenerator targetPackage="ibatortest.java2.generated.miscellaneous.model" targetProject="${generated.source.dir.java2}"> + <property name="trimStrings" value="true" /> + <property name="rootClass" value="ibatortest.java2.execute.miscellaneous.BaseClass" /> + </javaModelGenerator> + + <sqlMapGenerator targetPackage="ibatortest.java2.generated.miscellaneous.xml" targetProject="${generated.source.dir.java2}"> + </sqlMapGenerator> + + <daoGenerator type="GENERIC-CI" targetPackage="ibatortest.java2.generated.miscellaneous.dao" targetProject="${generated.source.dir.java2}"> + <property name="rootInterface" value="ibatortest.java2.execute.miscellaneous.BaseInterface" /> + <property name="methodNameCalculator" value="EXTENDED"/> + </daoGenerator> + + <table tableName="BlobsOnly" /> <!-- should generate a warning --> + <table tableName="NonExistantTable" /> <!-- should generate a warning --> + <table tableName="PKFields" domainObjectName="MyObject" alias="A" > + <ignoreColumn column="fred" /> <!-- should generate a warning --> + <ignoreColumn column="decimal30Field" /> + <columnOverride column="datefield" property="startDate"/> + <columnOverride column="decimal155Field" javaType="java.lang.Double" /> + <columnOverride column="decimal60Field" javaType="int" /> + <columnOverride column="firstName" javaType="ibatortest.java2.execute.miscellaneous.FirstName" + typeHandler="ibatortest.java2.execute.miscellaneous.FirstNameTypeHandler"/> + <columnOverride column="timeField" javaType="ibatortest.java2.execute.miscellaneous.MyTime" + typeHandler="ibatortest.java2.execute.miscellaneous.MyTimeTypeHandler"/> + </table> + </ibatorContext> +</ibatorConfiguration>
Added: ibatis/trunk/java/tools/ibator/core/testJava5/README_java5.txt URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/testJava5/README_java5.txt?rev=648102&view=auto ============================================================================== --- ibatis/trunk/java/tools/ibator/core/testJava5/README_java5.txt (added) +++ ibatis/trunk/java/tools/ibator/core/testJava5/README_java5.txt Mon Apr 14 19:32:53 2008 @@ -0,0 +1,3 @@ +The files in this source tree are used to test code generated from iBATOR +during the build. They will normally only compile successfully during +the iBATOR build. Added: ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/BaseTest.java URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/BaseTest.java?rev=648102&view=auto ============================================================================== --- ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/BaseTest.java (added) +++ ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/BaseTest.java Mon Apr 14 19:32:53 2008 @@ -0,0 +1,134 @@ +/* + * 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 ibatortest; + +import java.io.Reader; +import java.sql.Connection; +import java.sql.DriverManager; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Properties; +import java.util.Random; + +import junit.framework.TestCase; + +import com.ibatis.common.jdbc.ScriptRunner; +import com.ibatis.common.resources.Resources; +import com.ibatis.sqlmap.client.SqlMapClient; +import com.ibatis.sqlmap.client.SqlMapClientBuilder; + +/** + * @author Jeff Butler + * + */ +public abstract class BaseTest extends TestCase { + + protected static SqlMapClient sqlMapClient; + private static DateFormat dateOnlyFormat = SimpleDateFormat.getDateInstance(); + private static DateFormat timeOnlyFormat = SimpleDateFormat.getTimeInstance(); + + protected static void initSqlMapClient(String configFile, Properties props) throws Exception { + Reader reader = Resources.getResourceAsReader(configFile); + sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader, props); + reader.close(); + } + + @Override + protected void setUp() throws Exception { + Connection conn = null; + + try { + Class.forName("org.hsqldb.jdbcDriver"); + conn = DriverManager.getConnection("jdbc:hsqldb:mem:aname", "sa", + ""); + + Reader reader = Resources.getResourceAsReader("ibatortest/CreateDB.sql"); + + ScriptRunner runner = new ScriptRunner(conn, true, false); + runner.setLogWriter(null); + runner.setErrorLogWriter(null); + runner.runScript(reader); + conn.commit(); + + reader.close(); + } finally { + if (conn != null) { + conn.close(); + } + } + } + + protected byte[] generateRandomBlob() { + Random random = new Random(System.currentTimeMillis()); + + byte[] answer = new byte[256]; + + random.nextBytes(answer); + + return answer; + } + + protected boolean blobsAreEqual(byte[] blob1, byte[] blob2) { + if (blob1 == null) { + return blob2 == null; + } + + if (blob2 == null) { + return blob1 == null; + } + + boolean rc = blob1.length == blob2.length; + + if (rc) { + for (int i = 0; i < blob1.length; i++) { + if (blob1[i] != blob2[i]) { + rc = false; + break; + } + } + } + + return rc; + } + + protected boolean datesAreEqual(Date date1, Date date2) { + if (date1 == null) { + return date2 == null; + } + + if (date2 == null) { + return date1 == null; + } + + return dateOnlyFormat.format(date1).equals(dateOnlyFormat.format(date2)); + + } + + protected boolean timesAreEqual(Date date1, Date date2) { + if (date1 == null) { + return date2 == null; + } + + if (date2 == null) { + return date1 == null; + } + + return timeOnlyFormat.format(date1).equals(timeOnlyFormat.format(date2)); + + } +} Added: ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/CompleteJava5TestSuite.java URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/CompleteJava5TestSuite.java?rev=648102&view=auto ============================================================================== --- ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/CompleteJava5TestSuite.java (added) +++ ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/CompleteJava5TestSuite.java Mon Apr 14 19:32:53 2008 @@ -0,0 +1,29 @@ +package ibatortest; + +import ibatortest.execute.conditional.java2.ConditionalJava2Tests; +import ibatortest.execute.conditional.java5.ConditionalJava5Tests; +import ibatortest.execute.flat.java2.FlatJava2Tests; +import ibatortest.execute.flat.java5.FlatJava5Tests; +import ibatortest.execute.hierarchical.java2.HierarchicalJava2Tests; +import ibatortest.execute.hierarchical.java5.HierarchicalJava5Tests; +import ibatortest.execute.miscellaneous.MiscellaneousTests; +import junit.framework.Test; +import junit.framework.TestSuite; + +public class CompleteJava5TestSuite { + + public static Test suite() { + TestSuite suite = new TestSuite("All Java 5 Tests"); + + suite.addTestSuite(ConditionalJava2Tests.class); + suite.addTestSuite(ConditionalJava5Tests.class); + suite.addTestSuite(FlatJava2Tests.class); + suite.addTestSuite(FlatJava5Tests.class); + suite.addTestSuite(HierarchicalJava2Tests.class); + suite.addTestSuite(HierarchicalJava5Tests.class); + suite.addTestSuite(MiscellaneousTests.class); + + return suite; + } + +} Added: ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/CreateDB.sql URL: http://svn.apache.org/viewvc/ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/CreateDB.sql?rev=648102&view=auto ============================================================================== --- ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/CreateDB.sql (added) +++ ibatis/trunk/java/tools/ibator/core/testJava5/ibatortest/CreateDB.sql Mon Apr 14 19:32:53 2008 @@ -0,0 +1,92 @@ +drop table FieldsOnly if exists; +drop table PKOnly if exists; +drop table PKFields if exists; +drop table PKBlobs if exists; +drop table PKFieldsBlobs if exists; +drop table FieldsBlobs if exists; +drop table "awful table" if exists; +drop table BlobsOnly if exists; + +create table FieldsOnly ( + IntegerField int, + DoubleField double, + FloatField float +); + +create table PKOnly ( + id int not null, + seq_num int not null, + primary key(id, seq_num) +); + +create table PKFields ( + id1 int not null, + id2 int not null, + firstName varchar(20), + lastName varchar(20), + dateField date, + timeField time, + timestampField timestamp, + decimal30Field decimal(3, 0), + decimal60Field decimal(6, 0), + decimal100Field decimal(10, 0), + decimal155Field decimal(15, 5), + wierd$Field int, + primary key (id1, id2) +); + +create table PKBlobs ( + id int not null, + blob1 longvarbinary, + blob2 longvarbinary, + primary key (id) +); + +create table PKFieldsBlobs ( + id1 int not null, + id2 int not null, + firstName varchar(20), + lastName varchar(20), + blob1 longvarbinary, + primary key (id1, id2) +); + +create table FieldsBlobs ( + firstName varchar(20), + lastName varchar(20), + blob1 longvarbinary, + blob2 longvarbinary +); + +create table "awful table" ( + "CuStOmEr iD" int generated by default as identity (start with 57) not null, + "customer id" int, + "first name" varchar(20), + "First Name" varchar(20), + "first Name" varchar(20), + first_name varchar(20), + firstName varchar(20), + E_MAIL varchar(20), + _id1 int not null, + $id2 int not null, + id5_ int not null, + id6$ int not null, + id7$$ int not null, + EmailAddress varchar(30), + "from" varchar(30), + primary key("CuStOmEr iD") +); + +-- this table should be ignored, nothing generated +create table BlobsOnly ( + blob1 longvarbinary, + blob2 longvarbinary +); + +create table RegexRename ( + CUST_ID integer, + CUST_NAME varchar(30), + CUST_ADDRESS varchar(30), + ZIP_CODE char(5), + primary key(CUST_ID) +);