package com.taobao.tddl.qatest.atom; import java.util.Date; import java.util.List; import java.util.Map; import org.junit.Assert; import org.junit.Test; import org.springframework.dao.DataAccessException; import com.taobao.tddl.qatest.util.DateUtil; /** * Comment for AtomBaseCRUDTest * <p/> */ @SuppressWarnings("rawtypes") public class AtomBaseCRUDTest extends AtomTestCase { /** * 在指定的表中插入数据 */ @Test public void insertByPreStTest() { String sql = "insert into normaltbl_0001 (pk,gmt_create) values (?,?)"; Object[] arguments = new Object[] { RANDOM_ID, time }; tddlJT.update(sql, arguments); Map re = tddlJT.queryForMap("select * from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID }); Assert.assertEquals(time, String.valueOf(re.get("gmt_create"))); } /** * 在指定的表更新数据 */ @Test public void updateByPreStTest() { prepareData(tddlJT, "insert into normaltbl_0001 (pk,gmt_create) values (?,?)", new Object[] { RANDOM_ID, time }); String sql = "update normaltbl_0001 set gmt_create=? where pk=?"; Object[] arguments = new Object[] { nextDay, RANDOM_ID }; tddlJT.update(sql, arguments); Map re = tddlJT.queryForMap("select * from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID }); Assert.assertEquals(nextDay, String.valueOf(re.get("gmt_create"))); } /** * 在指定的表删除数据 */ @Test public void queryByPreStTest() { prepareData(tddlJT, "insert into normaltbl_0001 (pk,gmt_create) values (?,?)", new Object[] { RANDOM_ID, time }); String sql = "select * from normaltbl_0001 where pk=?"; Object[] arguments = new Object[] { RANDOM_ID }; Map re = tddlJT.queryForMap(sql, arguments); Assert.assertEquals(time, String.valueOf(re.get("gmt_create"))); } /** * 在指定的表查询数据 */ @Test public void deleteByPreStTest() { prepareData(tddlJT, "insert into normaltbl_0001 (pk,gmt_create) values (?,?)", new Object[] { RANDOM_ID, time }); String sql = "delete from normaltbl_0001 where pk=?"; Object[] arguments = new Object[] { RANDOM_ID }; tddlJT.update(sql, arguments); List re = tddlJT.queryForList("select * from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID }); Assert.assertEquals(0, re.size()); } /** * 在指定的表进行replace操作 */ @Test public void replaceByPreStTest() { prepareData(tddlJT, "insert into normaltbl_0001 (pk,gmt_create) values (?,?)", new Object[] { RANDOM_ID, time }); String sql = "replace into normaltbl_0001 (pk,gmt_create) values (?,?)"; Object[] arguments = new Object[] { RANDOM_ID, nextDay }; tddlJT.update(sql, arguments); Map re = tddlJT.queryForMap("select * from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID }); Assert.assertEquals(nextDay, String.valueOf(re.get("gmt_create"))); } /** * 在指定的表中插入数据 */ @Test public void insertByStTest() { String sql = "insert into normaltbl_0001 (pk,gmt_create) values (" + RANDOM_ID + ",CURDATE())"; tddlJT.update(sql); Map re = tddlJT.queryForMap("select * from normaltbl_0001 where pk=" + RANDOM_ID); Assert.assertEquals(time, DateUtil.formatDate((Date) re.get("gmt_create"), DateUtil.DATE_FULLHYPHEN)); } /** * 在指定的表更新数据 */ @Test public void updateByStTest() { prepareData(tddlJT, "insert into normaltbl_0001 (pk,gmt_create) values (?,?)", new Object[] { RANDOM_ID, time }); String sql = "update normaltbl_0001 set gmt_create= ADDDATE(CURDATE(),INTERVAL 1 DAY) where pk=" + RANDOM_ID; tddlJT.update(sql); Map re = tddlJT.queryForMap("select * from normaltbl_0001 where pk=" + RANDOM_ID); Assert.assertEquals(nextDay, DateUtil.formatDate((Date) re.get("gmt_create"), DateUtil.DATE_FULLHYPHEN)); } /** * 在指定的表删除数据 */ @Test public void queryByStTest() { prepareData(tddlJT, "insert into normaltbl_0001 (pk,gmt_create) values (?,?)", new Object[] { RANDOM_ID, time }); Map re = tddlJT.queryForMap("select * from normaltbl_0001 where pk=" + RANDOM_ID); Assert.assertEquals(time, DateUtil.formatDate((Date) re.get("gmt_create"), DateUtil.DATE_FULLHYPHEN)); } /** * 在指定的表查询数据 */ @Test public void deleteByStTest() { prepareData(tddlJT, "insert into normaltbl_0001 (pk,gmt_create) values (?,?)", new Object[] { RANDOM_ID, time }); String sql = "delete from normaltbl_0001 where pk=" + RANDOM_ID; tddlJT.update(sql); List re = tddlJT.queryForList("select * from normaltbl_0001 where pk=" + RANDOM_ID); Assert.assertEquals(0, re.size()); } /** * 在指定的表进行replace操作 */ @Test public void replaceByStTest() { prepareData(tddlJT, "insert into normaltbl_0001 (pk,gmt_create) values (?,?)", new Object[] { RANDOM_ID, time }); String sql = "replace into normaltbl_0001 (gmt_create,pk) values (ADDDATE(CURDATE(),INTERVAL 1 DAY)," + RANDOM_ID + ")"; tddlJT.update(sql); Map re = tddlJT.queryForMap("select * from normaltbl_0001 where pk=" + RANDOM_ID); Assert.assertEquals(nextDay, DateUtil.formatDate((Date) re.get("gmt_create"), DateUtil.DATE_FULLHYPHEN)); } /** * 不存在的表数据操作 */ @Test public void noneExistTblTest() { String time = DateUtil.formatDate(new Date(), DateUtil.DATE_FULLHYPHEN); String sql = "insert into normaltbl_noneExist (pk,gmt_create) values (?,?)"; try { tddlJT.update(sql, new Object[] { RANDOM_ID, time }); Assert.fail(); } catch (DataAccessException e) { } } }