package com.taobao.tddl.qatest.group;
import java.util.List;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import com.taobao.tddl.common.GroupDataSourceRouteHelper;
/**
* Comment for GroupRouteHelperIntegrationTest
* <p/>
* Created Date: 2010-12-8 下午06:55:29
*/
@SuppressWarnings("rawtypes")
public class GroupRouteHelperTest extends GroupTestCase {
@Test
public void executeByGroupDataSourceIndexTest() {
String sql = "insert into normaltbl_0001 (pk,gmt_create) values (?,?)";
Object[] arguments = new Object[] { RANDOM_ID, time };
tddlJT.update(sql, arguments);
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(0);
Map re = tddlJT.queryForMap("select * from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID });
Assert.assertEquals(time, String.valueOf(re.get("gmt_create")));
// 因为没有库复制数据,所以另外两个库上肯定没有数据(干扰数据除外)
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(1);
List rsList = tddlJT.queryForList("select * from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID });
Assert.assertEquals(0, rsList.size());
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(2);
rsList = tddlJT.queryForList("select * from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID });
Assert.assertEquals(0, rsList.size());
/*
* 清除数据,虽然Group中qatest_normal_0_bac为只读,
* 但如果指定数据库的情况下,只要对应的AtomDS可写,将可以正常写入
*/
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(1);
clearData(tddlJT, "delete from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID });
// 同上
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(1);
String sqlx = "insert into normaltbl_0001 (pk,gmt_create) values (?,?)";
tddlJT.update(sqlx, new Object[] { RANDOM_ID, time });
// 验证插入数据
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(1);
re = tddlJT.queryForMap("select * from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID });
Assert.assertEquals(time, String.valueOf(re.get("gmt_create")));
GroupDataSourceRouteHelper.executeByGroupDataSourceIndex(1);
clearData(tddlJT, "delete from normaltbl_0001 where pk=?", new Object[] { RANDOM_ID });
}
}