[Batchserver-cvs] batchserver/test/org/jmonks/batch/framework/repository/jdbc MySQLJdbcRepositoryT
Brought to you by:
suresh_pragada
From: Suresh <sur...@us...> - 2006-09-15 20:27:16
|
Update of /cvsroot/batchserver/batchserver/test/org/jmonks/batch/framework/repository/jdbc In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv29204 Added Files: MySQLJdbcRepositoryTest.java OracleJdbcRepositoryTest.java Log Message: no message --- NEW FILE: OracleJdbcRepositoryTest.java --- /* * MySQLJdbcRepositoryTest.java * JUnit based test * * Created on September 10, 2006, 12:53 PM */ package org.jmonks.batch.framework.repository.jdbc; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import junit.framework.*; import org.jmonks.batch.framework.ErrorCode; import org.jmonks.batch.framework.JobStatistics; import org.jmonks.batch.framework.util.JdbcConnectionHelper; /** * * @author Suresh Pragada */ public class OracleJdbcRepositoryTest extends TestCase { public OracleJdbcRepositoryTest(String testName) { super(testName); } protected void setUp() throws Exception { } protected void tearDown() throws Exception { } public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new OracleJdbcRepositoryTest("testInit")); suite.addTest(new OracleJdbcRepositoryTest("testJobDataTransfer")); suite.addTest(new OracleJdbcRepositoryTest("testLogStatistics")); suite.addTest(new OracleJdbcRepositoryTest("testJobMgmtMntrInfo")); return suite; } /** * Test of init method, of class org.jmonks.batchserver.framework.repository.jdbc.JdbcRepository. */ public void testInit() { try { OracleJdbcRepository repository=new OracleJdbcRepository(); repository.init(getOracleConfigMap()); } catch(Exception exception) { fail("Oracle Jdbc Repository testInit was failed."); } } /** * Test of testJobDataTransfer method covers all the test cases related to the job data transfer. */ public void testJobDataTransfer() { try { OracleJdbcRepository repository1=new OracleJdbcRepository(); repository1.init(getOracleConfigMap()); repository1.setJobName("process_file_abc"); Map dataGoingToBeSend=new HashMap(); dataGoingToBeSend.put("author","suresh"); boolean sendStatus=repository1.sendDataToNextJob("ID1", "process_file_xyz", dataGoingToBeSend); assertTrue(sendStatus); OracleJdbcRepository repository2=new OracleJdbcRepository(); repository2.init(getOracleConfigMap()); repository2.setJobName("process_file_xyz"); Object dataSent=repository2.getDataFromPreviousJob("ID1", "process_file_abc"); assertNotNull(dataSent); Map dataSentMap=(Map)dataSent; String author=(String)dataSentMap.get("author"); assertEquals("suresh",author); boolean cleared=repository1.clearDataTransferredFromThisJob(); assertTrue(cleared); Object clearedDataSent=repository2.getDataFromPreviousJob("ID1", "process_file_abc"); assertNull(clearedDataSent); } catch(Exception exception) { fail("Oracle Jdbc Repository testJobDataTransfer was failed."); } } /** * Test of logStatistics method covers all the test cases related to logging the statistics. */ public void testLogStatistics() { try { OracleJdbcRepository repository1=new OracleJdbcRepository(); repository1.init(getOracleConfigMap()); repository1.setJobName("process_file_abc"); JobStatistics stats=new JobStatistics("process_file_abc"); stats.setStartTime(Calendar.getInstance().getTime()); stats.setEndTime(Calendar.getInstance().getTime()); stats.setExitCode(ErrorCode.createErrorCode(10001, "This is my error code.")); stats.setMaxMemeoryUsage(123456); stats.setRecordsProcessed(123456); boolean logged=repository1.logStatistics(stats); assertTrue(logged); JobStatistics[] loggedStats=repository1.getStatistics(); assertNotNull(loggedStats); assertTrue(loggedStats.length>=1); } catch(Exception exception) { fail("Oracle Jdbc Repository testLogStatistics was failed."); } } /** * Test of testJobMgmtMntrInfo method covers all the test cases pertained to the registation of * job management and monitoring. */ public void testJobMgmtMntrInfo() { try { OracleJdbcRepository repository1=new OracleJdbcRepository(); repository1.init(getOracleConfigMap()); repository1.setJobName("process_file_abc"); List list=new ArrayList(); list.add(0, "Suresh"); boolean registered=repository1.registerJobMgmtMntrInfo(list); assertTrue(registered); Object registeredInfo=repository1.lookupJobMgmtMntrInfo(); assertNotNull(registeredInfo); List retrievedList=(List)registeredInfo; assertTrue(retrievedList.size()>=1); String savedValue=(String)retrievedList.get(0); assertEquals("Suresh",savedValue); boolean unregistered=repository1.unregisterJobMgmtMntrInfo(); assertTrue(unregistered); registeredInfo=repository1.lookupJobMgmtMntrInfo(); assertNull(registeredInfo); } catch(Exception exception) { fail("Oracle Jdbc Repository testLogStatistics was failed."); } } private Map getOracleConfigMap() { Map configMap=new HashMap(); configMap.put(JdbcConnectionHelper.PROPERTY_JDBC_DRIVER_CLASS_NAME, "oracle.jdbc.driver.OracleDriver"); configMap.put(JdbcConnectionHelper.PROPERTY_JDBC_URL, "jdbc:oracle:thin:@himeros:1521:BRTST05"); configMap.put(JdbcConnectionHelper.PROPERTY_DATABASE_USER_NAME, "w951h8m"); configMap.put(JdbcConnectionHelper.PROPERTY_DATABASE_PASSWORD, "prag18"); return configMap; } class OracleJdbcRepository extends JdbcRepository { /** * Creates a new instance of OracleJdbcRepository */ public OracleJdbcRepository() { } public void init(Map configMap) { super.init(configMap); } public void setJobName(String jobName) { this.jobName=jobName; } public JobStatistics[] getStatistics() { // logger.trace("Entering getStatistics"); // logger.debug("getStatistics :: job name = " + jobName); // // if(jobName==null) // throw new IllegalArgumentException("job name cannot be null for querying the job statistics."); JobStatistics[] statistics=null; List jobStatisticsList=null; Connection connection=JdbcConnectionHelper.getConnection(this.jdbcConfigMap); if(connection==null) statistics=new JobStatistics[]{}; else { try { PreparedStatement statement=connection.prepareStatement("select job_start_time,job_end_time,job_exit_code,job_exit_reason,records_processed,memory_usage from job_statistics where job_name=?"); statement.setString(1, this.jobName); ResultSet rs=statement.executeQuery(); jobStatisticsList=new ArrayList(); while(rs.next()) { JobStatistics statistic=new JobStatistics(jobName); statistic.setStartTime(new java.util.Date(rs.getTimestamp(1).getTime())); statistic.setEndTime(new java.util.Date(rs.getTimestamp(2).getTime())); int exitCode=rs.getInt(3); String exitReason=rs.getString(4); ErrorCode errorCode=ErrorCode.createErrorCode(exitCode, exitReason==null?"":exitReason); statistic.setExitCode(errorCode); statistic.setRecordsProcessed(rs.getLong(5)); statistic.setMaxMemeoryUsage(rs.getLong(6)); jobStatisticsList.add(statistic); } rs.close(); statement.close(); } catch(SQLException exception) { exception.printStackTrace(); //logger.error("Exception while trying to get the job statistics for the job = " + this.jobName + ". Message = " + exception.getMessage(), exception); } finally { JdbcConnectionHelper.closeConnection(connection); if(jobStatisticsList!=null) { statistics=new JobStatistics[jobStatisticsList.size()]; jobStatisticsList.toArray(statistics); } else statistics=new JobStatistics[]{}; } } //logger.trace("Exiting getStatistics"); return statistics; } public Object lookupJobMgmtMntrInfo() { //logger.trace("Entering lookupJobMgmtMntrInfo"); //logger.debug("lookupJobMgmtMntrInfo :: job name = " + jobName); //if(jobName==null) //throw new IllegalArgumentException("jobName cannot be null to lookup the mgmt and mntr information."); Object registredInfo=null; Connection connection=JdbcConnectionHelper.getConnection(this.jdbcConfigMap); if(connection==null) registredInfo=null; else { try { PreparedStatement statement=connection.prepareStatement("select job_info from job_mgmt_mntr_info where job_name=?"); statement.setString(1, this.jobName); ResultSet rs=statement.executeQuery(); if(rs.next()) { InputStream inputStream=rs.getBinaryStream(1); registredInfo=deserializeObjectFromInputStream(inputStream); } else registredInfo=null; rs.close(); statement.close(); } catch(SQLException exception) { exception.printStackTrace(); //logger.error("Exception while trying to lookup mgmt and mntr info = " + this.jobName); registredInfo=null; } finally { JdbcConnectionHelper.closeConnection(connection); } } //logger.trace("Exiting lookupJobMgmtMntrInfo"); return registredInfo; } } } --- NEW FILE: MySQLJdbcRepositoryTest.java --- /* * MySQLJdbcRepositoryTest.java * JUnit based test * * Created on September 10, 2006, 12:53 PM */ package org.jmonks.batch.framework.repository.jdbc; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import junit.framework.*; import org.jmonks.batch.framework.ErrorCode; import org.jmonks.batch.framework.JobStatistics; import org.jmonks.batch.framework.util.JdbcConnectionHelper; /** * * @author Suresh Pragada */ public class MySQLJdbcRepositoryTest extends TestCase { public MySQLJdbcRepositoryTest(String testName) { super(testName); } protected void setUp() throws Exception { } protected void tearDown() throws Exception { } public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new MySQLJdbcRepositoryTest("testInit")); suite.addTest(new MySQLJdbcRepositoryTest("testJobDataTransfer")); suite.addTest(new MySQLJdbcRepositoryTest("testLogStatistics")); suite.addTest(new MySQLJdbcRepositoryTest("testJobMgmtMntrInfo")); return suite; } /** * Test of init method, of class org.jmonks.batchserver.framework.repository.jdbc.JdbcRepository. */ public void testInit() { try { MySQLJdbcRepository repository=new MySQLJdbcRepository(); repository.init(getMySQLConfigMap()); } catch(Exception exception) { fail("MySQL Jdbc Repository testInit was failed."); } } /** * Test of testJobDataTransfer covers all the cases for the job data transfer. */ public void testJobDataTransfer() { try { MySQLJdbcRepository repository1=new MySQLJdbcRepository(); repository1.init(getMySQLConfigMap()); repository1.setJobName("process_file_abc"); Map dataGoingToBeSend=new HashMap(); dataGoingToBeSend.put("author","suresh"); boolean sendStatus=repository1.sendDataToNextJob("ID1", "process_file_xyz", dataGoingToBeSend); assertEquals(true, sendStatus); MySQLJdbcRepository repository2=new MySQLJdbcRepository(); repository2.init(getMySQLConfigMap()); repository2.setJobName("process_file_xyz"); Object dataSent=repository2.getDataFromPreviousJob("ID1", "process_file_abc"); assertNotNull(dataSent); Map dataSentMap=(Map)dataSent; String author=(String)dataSentMap.get("author"); assertEquals("suresh",author); repository1.clearDataTransferredFromThisJob(); Object clearedDataSent=repository2.getDataFromPreviousJob("ID1", "process_file_abc"); assertNull(clearedDataSent); } catch(Exception exception) { fail("MySQL Jdbc Repository testJobDataTransfer was failed."); } } /** * Test of logStatistics method, of class org.jmonks.batchserver.framework.repository.jdbc.JdbcRepository. */ public void testLogStatistics() { try { MySQLJdbcRepository repository1=new MySQLJdbcRepository(); repository1.init(getMySQLConfigMap()); repository1.setJobName("process_file_abc"); JobStatistics stats=new JobStatistics("process_file_abc"); stats.setStartTime(Calendar.getInstance().getTime()); stats.setEndTime(Calendar.getInstance().getTime()); stats.setExitCode(ErrorCode.createErrorCode(10001, "This is my error code.")); stats.setMaxMemeoryUsage(123456); stats.setRecordsProcessed(123456); boolean logged=repository1.logStatistics(stats); assertTrue(logged); JobStatistics[] loggedStats=repository1.getStatistics(); assertNotNull(loggedStats); assertTrue(loggedStats.length>=1); } catch(Exception exception) { fail("MySQL Jdbc Repository testLogStatistics was failed."); } } /** * Test of testJobMgmtMntrInfo covers all the cases for the job mgmt and mntr updates. */ public void testJobMgmtMntrInfo() { try { MySQLJdbcRepository repository1=new MySQLJdbcRepository(); repository1.init(getMySQLConfigMap()); repository1.setJobName("process_file_abc"); List list=new ArrayList(); list.add(0, "Suresh"); boolean registered=repository1.registerJobMgmtMntrInfo(list); assertTrue(registered); Object registeredInfo=repository1.lookupJobMgmtMntrInfo(); assertNotNull(registeredInfo); List retrievedList=(List)registeredInfo; assertTrue(retrievedList.size()>=1); String savedValue=(String)retrievedList.get(0); assertEquals("Suresh",savedValue); boolean unregistered=repository1.unregisterJobMgmtMntrInfo(); assertTrue(unregistered); registeredInfo=repository1.lookupJobMgmtMntrInfo(); assertNull(registeredInfo); } catch(Exception exception) { fail("MySQL Jdbc Repository testLogStatistics was failed."); } } private Map getMySQLConfigMap() { Map configMap=new HashMap(); configMap.put(JdbcConnectionHelper.PROPERTY_JDBC_DRIVER_CLASS_NAME, "com.mysql.jdbc.Driver"); configMap.put(JdbcConnectionHelper.PROPERTY_JDBC_URL, "jdbc:mysql://localhost:3306/batchserver"); configMap.put(JdbcConnectionHelper.PROPERTY_DATABASE_USER_NAME, "root"); configMap.put(JdbcConnectionHelper.PROPERTY_DATABASE_PASSWORD, "ramesh"); return configMap; } class MySQLJdbcRepository extends JdbcRepository { public MySQLJdbcRepository() { } public void init(Map configMap) { super.init(configMap); } public void setJobName(String jobName) { this.jobName=jobName; } public JobStatistics[] getStatistics() { // logger.trace("Entering getStatistics"); // logger.debug("getStatistics :: job name = " + jobName); // // if(jobName==null) // throw new IllegalArgumentException("job name cannot be null for querying the job statistics."); JobStatistics[] statistics=null; List jobStatisticsList=null; Connection connection=JdbcConnectionHelper.getConnection(this.jdbcConfigMap); if(connection==null) statistics=new JobStatistics[]{}; else { try { PreparedStatement statement=connection.prepareStatement("select job_start_time,job_end_time,job_exit_code,job_exit_reason,records_processed,memory_usage from job_statistics where job_name=?"); statement.setString(1, this.jobName); ResultSet rs=statement.executeQuery(); jobStatisticsList=new ArrayList(); while(rs.next()) { JobStatistics statistic=new JobStatistics(jobName); statistic.setStartTime(new java.util.Date(rs.getTimestamp(1).getTime())); statistic.setEndTime(new java.util.Date(rs.getTimestamp(2).getTime())); int exitCode=rs.getInt(3); String exitReason=rs.getString(4); ErrorCode errorCode=ErrorCode.createErrorCode(exitCode, exitReason==null?"":exitReason); statistic.setExitCode(errorCode); statistic.setRecordsProcessed(rs.getLong(5)); statistic.setMaxMemeoryUsage(rs.getLong(6)); jobStatisticsList.add(statistic); } rs.close(); statement.close(); } catch(SQLException exception) { exception.printStackTrace(); //logger.error("Exception while trying to get the job statistics for the job = " + this.jobName + ". Message = " + exception.getMessage(), exception); } finally { JdbcConnectionHelper.closeConnection(connection); if(jobStatisticsList!=null) { statistics=new JobStatistics[jobStatisticsList.size()]; jobStatisticsList.toArray(statistics); } else statistics=new JobStatistics[]{}; } } //logger.trace("Exiting getStatistics"); return statistics; } public Object lookupJobMgmtMntrInfo() { //logger.trace("Entering lookupJobMgmtMntrInfo"); //logger.debug("lookupJobMgmtMntrInfo :: job name = " + jobName); //if(jobName==null) //throw new IllegalArgumentException("jobName cannot be null to lookup the mgmt and mntr information."); Object registredInfo=null; Connection connection=JdbcConnectionHelper.getConnection(this.jdbcConfigMap); if(connection==null) registredInfo=null; else { try { PreparedStatement statement=connection.prepareStatement("select job_info from job_mgmt_mntr_info where job_name=?"); statement.setString(1, this.jobName); ResultSet rs=statement.executeQuery(); if(rs.next()) { InputStream inputStream=rs.getBinaryStream(1); registredInfo=deserializeObjectFromInputStream(inputStream); } else registredInfo=null; rs.close(); statement.close(); } catch(SQLException exception) { exception.printStackTrace(); //logger.error("Exception while trying to lookup mgmt and mntr info = " + this.jobName); registredInfo=null; } finally { JdbcConnectionHelper.closeConnection(connection); } } //logger.trace("Exiting lookupJobMgmtMntrInfo"); return registredInfo; } } } |