DBUnit Skeleton

类别:Java 点击:0 评论:0 推荐:

//DBUnit Skeletion
//简单的DBUnit例子
//经实例整理而成,数据层采用jdo。

public class CargoContainerDAOTest extends DatabaseTestCase
{
 private IDatabaseConnection conn = null;
 private IDataSet dataSet = null;
 private DAOJDO dao = null;

 private static String[] tableNames = new String[]
  {"AIRSIDE_MOVEMENT",
  "ULD_SERIAL_TARE_WEIGHT"};

 private static String[] excludeColumns = new String[]
  {"CREATED_BY",
  "CREATED_BY_FUNCTION",
  "CREATED_DATE_TIME",
  "JDOVERSION",
  "LAST_UPDATED_BY",
  "LAST_UPDATED_BY_FUNCTION",
  "LAST_UPDATED_DATE_TIME",
  "VERSION"};

 private static final String SEED =
  "/testdata/seed1.xml";

//Setup 和 teardown 方法:在每个testXXX方法之前、之后调用。为了避免数据冲突,把表清空。
 protected void setUp() throws Exception
 {
  conn = getConnection();
  emptyTable();
  dao = new DAOJDO();
  //应用Transaction
  TransactionManagerUtil.getTransactionManager().begin();
 }

 protected void tearDown() throws Exception
 {
  closeConnection(conn);
 }

 protected IDatabaseConnection getConnection() throws Exception
 {
  //装载驱动,通过用户名,密码连接数据库,创建jdbc连接
  Class driverClass = Class.forName(System.getProperty("driverClassName"));
  Connection jdbcConnection = DriverManager.getConnection(System.getProperty("dbunit.url"), System
   .getProperty("dbunit.user"), System.getProperty("dbunit.password"));
  return new DatabaseConnection(jdbcConnection);
 }

 protected IDataSet getDataSet() throws Exception
 {
  return null;
 }

 protected IDataSet getDataSet(String seed) throws Exception
 {
  URL url = CargoContainerDAOTest.class.getResource(seed);
  if (url == null)
  {
   throw new Exception("could not find file for " + seed);
  }
  return new FlatXmlDataSet(url);
 }

 protected void emptyTable() throws Exception
 {
  IDataSet dataSet = conn.createDataSet(tableNames);
  DatabaseOperation.DELETE_ALL.execute(conn, dataSet);
 }

 //***********************start test methods******************

 public void testCreateAirsideMovement() throws Exception
 {
  emptyTable();
  AirsideMovement am = new AirsideMovement();
  am.setAirsideMovementId(100);
  dao.createAirsideMovement(am, null);
  TransactionManagerUtil.getTransactionManager().commit();

  String[] nowTable = {"AIRSIDE_MOVEMENT"};
  IDataSet databaseDataSet = conn.createDataSet(nowTable);
  ITable actualTable = databaseDataSet.getTable("AIRSIDE_MOVEMENT");

  IDataSet expectedDataSet = getDataSet(SEED1);
  ITable expectedTable = expectedDataSet.getTable("AIRSIDE_MOVEMENT");

  //创建表的test方法都类似这样。
  //
  actualTable = DefaultColumnFilter.excludedColumnsTable(actualTable, excludeColumns);

  Assertion.assertEquals(expectedTable, actualTable);

 }

 public void testRetrieveEICbyULDItinerary() throws Exception
 {
  emptyTable();
  DatabaseOperation.INSERT.execute(conn, getDataSet(SEED3));
  isRetrieve = true;
  EIC eic = dao.retrieveEICbyULDItinerary("ULDI1001", 123);

  assertEquals(eic.getEicId(), 123);
 }
}

本文地址:http://com.8s8s.com/it/it12501.htm