1   /*******************************************************************************
2    *  Copyright (c) 2005, 2006 Imola Informatica.
3    *  All rights reserved. This program and the accompanying materials
4    *  are made available under the terms of the LGPL License v2.1
5    *  which accompanies this distribution, and is available at
6    *  http://www.gnu.org/licenses/lgpl.html
7    *******************************************************************************/
8   /**
9    * 
10   */
11  package it.imolinfo.jbi4cics.test.mapping.jdbc;
12  
13  import it.imolinfo.jbi4cics.test.connection.jdbc.util.BaseJdbcTestCase;
14  
15  /**
16   * @author raffaele
17   *
18   */
19  public class SimpleJdbcMappingTest extends BaseJdbcTestCase {
20    
21    /*private static Log log=LogFactory.getLog(SimpleJdbcMappingTest.class);
22  
23    *//**
24     * @param arg0
25     *//*
26    public SimpleJdbcMappingTest(String arg0) {
27      super(arg0);
28      // TODO Auto-generated constructor stub
29    }  
30    
31    public void testQueryPreparedStatement(){
32      try {
33        //costruisco il parameter descriptor
34        JdbcParameterDescriptor tableTypeParameter=new JdbcParameterDescriptor(JdbcParameterDescriptor.IN_PARAMETER);
35        
36        //costruisco lo statement decriptor
37        JdbcStatementDescriptor jdbcStatementDescriptor=new JdbcStatementDescriptor();
38        jdbcStatementDescriptor.addFieldMapping("tableType",new Integer(1),tableTypeParameter);
39        jdbcStatementDescriptor.setStatementType(JdbcStatementDescriptor.PREPARED_STATEMENT);
40        jdbcStatementDescriptor.setSqlType(JdbcStatementDescriptor.SELECT_SQL);
41        jdbcStatementDescriptor.setSql("select TABLEID, TABLENAME, TABLETYPE, SCHEMAID, LOCKGRANULARITY from SYS.SYSTABLES where TABLETYPE=?");
42        jdbcStatementDescriptor.setBeanClass(SysTableParameterBean.class);
43        
44        // costrisco il result set mapping descriptor
45        ResultSetMappingDescriptor resultSetMappingDescriptor=new ResultSetMappingDescriptor();
46        resultSetMappingDescriptor.addFieldMapping("tableId","TABLEID",null);
47        resultSetMappingDescriptor.addFieldMapping("tableName","TABLENAME",null);
48        resultSetMappingDescriptor.addFieldMapping("tableType","TABLETYPE",null);
49        resultSetMappingDescriptor.addFieldMapping("schemaId","SCHEMAID",null);
50        resultSetMappingDescriptor.addFieldMapping("lockGranularity","LOCKGRANULARITY",null);
51        resultSetMappingDescriptor.setBeanClass(SysTableRowBean.class);
52        
53        // costruisco il mapping descriptor
54        JdbcBeanMappingDescriptor jdbcBeanMappingDescriptor=new JdbcBeanMappingDescriptor();      
55        jdbcBeanMappingDescriptor.setJdbcStatementDescriptor(jdbcStatementDescriptor);
56        jdbcBeanMappingDescriptor.setResultSetMappingDescriptor(resultSetMappingDescriptor);
57        jdbcBeanMappingDescriptor.setResultSetPropertyName("rowBeans");
58  
59        // costruisco l'input bean
60        SysTableParameterBean inputBean=new SysTableParameterBean();
61        inputBean.setTableType("S");
62        
63        //costruisco il service context
64        //inizializzazione del service context
65        ServiceContext serviceContext=new ServiceContext();
66        serviceContext.setInputMappingDescriptor(jdbcBeanMappingDescriptor);
67        serviceContext.setOutputMappingDescriptor(jdbcBeanMappingDescriptor);
68        serviceContext.setInputBean(inputBean);
69  
70        
71        // costruisco il jdbc formatter
72        JdbcFormatter jdbcFormatter=new JdbcFormatter();
73        
74        // eseguo la formattazione in andata
75        long millis1=System.currentTimeMillis();
76        jdbcFormatter.mapInputBeanToInputMessage(serviceContext);
77        DisconnectedPreparedStatement inputMessage=(DisconnectedPreparedStatement)serviceContext.getInputMessage();
78        long millis2=System.currentTimeMillis();
79        log.debug("input message: "+inputMessage);
80        log.debug("conversion time1="+(millis2-millis1)+" millis");
81        
82        // connetto lo statement ed eseguo la query
83        inputMessage.setConnection(conn);
84        inputMessage.setConnected(true);
85        ResultSet rs=inputMessage.executeQuery();
86        log.debug("resultset: "+rs);
87        
88        //mi disconnetto
89        inputMessage.setConnected(false);
90        conn.close();
91        
92        // costruisco il messaggio di output
93        JdbcOutputMessage jdbcOutputMessage=new JdbcOutputMessage(inputMessage,rs);
94        serviceContext.setOutputMessage(jdbcOutputMessage);
95        
96        millis1=System.currentTimeMillis();
97        jdbcFormatter.mapOutputMessageToOutputBean(serviceContext);
98        SysTableParameterBean outputBean=(SysTableParameterBean)serviceContext.getOutputBean();
99        millis2=System.currentTimeMillis();
100       
101       log.debug("output bean: "+outputBean);
102       log.debug("conversion time1="+(millis2-millis1)+" millis");
103     }
104     catch(FormatException e){
105       e.printStackTrace();
106       fail(e.getMessage());
107     }
108     catch(SQLException e){
109       e.printStackTrace();
110       fail(e.getMessage());
111     }
112     
113   }
114   
115   public static class SysTableParameterBean {
116     private String tableType;
117     private Collection rowBeans;
118     *//**
119      * @return Returns the rowBeans.
120      *//*
121     public Collection getRowBeans() {
122       return rowBeans;
123     }
124     *//**
125      * @param rowBeans The rowBeans to set.
126      *//*
127     public void setRowBeans(Collection rowBeans) {
128       this.rowBeans = rowBeans;
129     }
130     *//**
131      * @return Returns the tableType.
132      *//*
133     public String getTableType() {
134       return tableType;
135     }
136     *//**
137      * @param tableType The tableType to set.
138      *//*
139     public void setTableType(String tableType) {
140       this.tableType = tableType;
141     }
142     
143     public String toString() {
144       return ReflectionToStringBuilder.toString(this);
145     }
146     
147     public boolean equals(Object obj) {
148       return EqualsBuilder.reflectionEquals(this, obj);
149     }    
150     
151   }
152   
153   public static class SysTableRowBean {
154     private String tableId;
155     private String tableName;
156     private String tableType;
157     private String schemaId;
158     private String lockGranularity;
159     *//**
160      * @return Returns the lockGranularity.
161      *//*
162     public String getLockGranularity() {
163       return lockGranularity;
164     }
165     *//**
166      * @param lockGranularity The lockGranularity to set.
167      *//*
168     public void setLockGranularity(String lockGranularity) {
169       this.lockGranularity = lockGranularity;
170     }
171     *//**
172      * @return Returns the schemaId.
173      *//*
174     public String getSchemaId() {
175       return schemaId;
176     }
177     *//**
178      * @param schemaId The schemaId to set.
179      *//*
180     public void setSchemaId(String schemaId) {
181       this.schemaId = schemaId;
182     }
183     *//**
184      * @return Returns the tableId.
185      *//*
186     public String getTableId() {
187       return tableId;
188     }
189     *//**
190      * @param tableId The tableId to set.
191      *//*
192     public void setTableId(String tableId) {
193       this.tableId = tableId;
194     }
195     *//**
196      * @return Returns the tableName.
197      *//*
198     public String getTableName() {
199       return tableName;
200     }
201     *//**
202      * @param tableName The tableName to set.
203      *//*
204     public void setTableName(String tableName) {
205       this.tableName = tableName;
206     }
207     *//**
208      * @return Returns the tableType.
209      *//*
210     public String getTableType() {
211       return tableType;
212     }
213     *//**
214      * @param tableType The tableType to set.
215      *//*
216     public void setTableType(String tableType) {
217       this.tableType = tableType;
218     }
219     
220     public String toString() {
221       return ReflectionToStringBuilder.toString(this);
222     }
223     
224     public boolean equals(Object obj) {
225       return EqualsBuilder.reflectionEquals(this, obj);
226     }    
227     
228   }
229 */
230 }