单元测试

来源:互联网 发布:淘宝在线人数免费插件 编辑:程序博客网 时间:2024/06/06 01:56

/**
 * 文件名:CrudTest.java
 *
 * 版本信息:
 * 日期:2011-9-14
 * Copyright Thunisoft Corporation 2011
 * 版权所有
 *
 */

package com.thunisoft.summer.component.log.test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.thunisoft.summer.component.log.common.LogUtils;
import com.thunisoft.summer.component.log.common.bean.CmptDataLog;
import com.thunisoft.summer.component.log.dao.ILogDao;
import com.thunisoft.summer.component.log.test.bean.TTestRz;
import com.thunisoft.summer.component.log.test.bean.TTestTem;
import com.thunisoft.summer.component.log.vo.LogQueryVo;
import com.thunisoft.summer.util.DateUtils;

/**
 * Title: 增、删、改测试<br>
 * Description: 只对TTestRz测试处理<br>
 *
 * @author zhangh
 * @version: 2011-9-14 下午04:57:35
 * @date 2011-9-14
 */
public class CrudMysqlTest {

 protected TestDao testDao;
 protected ILogDao<CmptDataLog> logDao;
 protected static Serializable id;
 protected static TTestRz rz;
 protected static TTestTem tem ;
 public static BeanFactory bf;

 @BeforeClass
 public static void beforeClass() {
  String[] locations = new String[] {
    "classpath:/resource/spring/applicationContext.xml",
    "classpath:/resource/spring/spring-cmpt-log-rdbms.xml" };

  bf = new ClassPathXmlApplicationContext(locations);
 }

 @SuppressWarnings("unchecked")
 @Before
 public void setUp() {
  testDao = (TestDao) bf.getBean("testDao");
  logDao = (ILogDao<CmptDataLog>) bf.getBean("sjLogHibernateDAO");
 }
 @Ignore
 @Test
 /**
  * 使用mysql保存10000条pojo,写入50000条日志记录耗时:2595.641s
  */
 public void testSave() {
  /*TTestRz rz = new TTestRz();
  rz.setCYhid("-1");
  rz.setDDqrq(Calendar.getInstance().getTime());
  rz.setDZxsj(Calendar.getInstance().getTime());
  rz.setNNum(Math.round(Math.random() * 10));
  id = testDao.getHibernateTemplate().save(rz);

  assertNotNull(id);
  assertEquals(5, getLogCount("save"));*/
  TTestTem tem = new TTestTem();
  tem.setName("insert userName");
  tem.setAge(92);
  id = testDao.getHibernateTemplate().save(tem);
  assertNotNull(id);

 }

 private int getLogCount(final String type) {
  List<CmptDataLog> list = logDao.findLogByCondition(
    new HashMap<String, Object>() {

     private static final long serialVersionUID = 1L;

     {
      put("CSjid", id);
      put("CRzzy", type);
     }
    }, 1, 100);
  return list.size();
 }

 @Test
 public void testGet() {
  //rz = (TTestRz) testDao.getHibernateTemplate().get(TTestRz.class, id);
  id = "088b80ce34aba0200134aba6bf4e0005";
  tem = (TTestTem) testDao.getHibernateTemplate().get(TTestTem.class, id);
  assertEquals(tem.getId(), id);
 }

 @Test
 public void testUpdate() {
  /*rz.setCYhid("2");
  rz.setDZxsj(Calendar.getInstance().getTime());
  rz.setDDqrq(getCurDate());
  rz.setNNum(Math.round(Math.random() * 10000));
  testDao.getHibernateTemplate().update(rz);

  assertEquals(4, getLogCount("update"));*/
  tem.setAge(10);
  tem.setName("update userName");
  testDao.getHibernateTemplate().update(tem);

 }

 public Date getCurDate() {
  return LogUtils.parseDateTime(DateUtils.getCurDate());
 }

 @Ignore
 @Test
 public void testMerge() {
  rz.setCYhid("2");
  rz.setDDqrq(Calendar.getInstance().getTime());
  rz.setNNum(Math.round(Math.random() * 10));
  testDao.getHibernateTemplate().merge(rz);

  int updateCount = getLogCount("update");
  // -4 去掉testUpdate时产生的记录数
  assertEquals(2, updateCount - 4);
 }

 @Ignore
 @Test
 public void testDelete() {
  /*testDao.getHibernateTemplate().delete(rz);

  assertEquals(id, rz.getCId());
  assertEquals(1, getLogCount("delete"));*/
  testDao.getHibernateTemplate().delete(tem);
 }

 public static void main(String[] args) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
  LogQueryVo v = new LogQueryVo();
  v.setCBm("cbm");
  v.setCIp("172.17.23.23");
  Map m = BeanUtils.describe(v);
  System.out.println(m);
 }
}

原创粉丝点击