package com.alipay.zdal.test.shardfailover;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.alipay.ats.internal.domain.ATS.Step;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.alipay.ats.annotation.Feature;
import com.alipay.ats.annotation.Priority;
import com.alipay.ats.annotation.Subject;
import com.alipay.ats.assertion.TestAssertion;
import com.alipay.ats.enums.PriorityLevel;
import com.alipay.ats.junit.ATSJUnitRunner;
import com.alipay.zdal.test.common.ConstantsTest;
import com.alipay.zdal.test.common.ZdalTestCommon;
import com.ibatis.sqlmap.client.SqlMapClient;
@RunWith(ATSJUnitRunner.class)
@Feature("shard+Failover ,�ֿ�ֱ����")
public class SR953030 {
public TestAssertion Assert = new TestAssertion();;
private SqlMapClient sqlMap;
private String dbpsd;
private String dbuser;
private String dburl1;
private String dburl3;
@Before
public void beforeTestCase(){
dbpsd=ConstantsTest.mysq112Psd;
dbuser=ConstantsTest.mysq112User;
dburl1=ConstantsTest.mysq112UrlTddl1;
dburl3=ConstantsTest.mysq112UrlTddl3;
sqlMap=(SqlMapClient)ZdalShardfailoverSuite.context.getBean("zdalShardfailoverShardDbShardTable");
}
@Subject("shard+failover���ֿ�ֱ�д�⡣дmaster_1��users_1��")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC953031(){
Step("shard+failover���ֿ�ֱ�д�⡣дmaster_1��users_1��");
Map<String, Object> params = new HashMap<String, Object>();
params.put("user_id", Integer.valueOf("11"));
params.put("name", "test_users");
params.put("address", "test_address");
try{
sqlMap.insert("insertShardfailoverMysql", params);
}catch(Exception ex){
ex.printStackTrace();
}
Step("����");
testCheckData(dburl1);
Step("�������");
testDeleData(dburl1);
}
@SuppressWarnings("unchecked")
@Subject("shard+failover���ֿ�ֱ����⡣дmaster_3��users_3��")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC953032(){
Step("shard+failover���ֿ�ֱ����⡣дmaster_3��users_3��");
testPrepareData();
Map<String, Object> params = new HashMap<String, Object>();
params.put("user_id", Integer.valueOf("13"));
try {
List<Object> rs=(List<Object>)sqlMap.queryForList("selectZoneDsZoneError",params);
Assert.areEqual(1, rs.size(), "����ѯ�����¼");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Assert.areEqual(1, 2, "���ó��ֵ��쳣");
}
Step("�������");
testDeleData(dburl3);
}
/**
* �����������
* @param dburl
*/
private void testCheckData(String dburl){
String sql="select count(*) from users_1";
ResultSet rs=ZdalTestCommon.dataCheckFromJDBC(sql, dburl, dbpsd, dbuser);
try {
rs.next();
Assert.areEqual(1, rs.getInt(1), "���ݼ��");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* ��������
*/
private void testDeleData(String dburl){
String delStr="delete from users_1";
String delStr3="delete from users_3";
ZdalTestCommon.dataUpdateJDBC(delStr, dburl, dbpsd, dbuser);
ZdalTestCommon.dataUpdateJDBC(delStr3, dburl3, dbpsd, dbuser);
}
/**
* ������
*/
private void testPrepareData(){
String insertSql="insert into users_3 (user_id,name,address) values (13,'test','test') ";
ZdalTestCommon.dataUpdateJDBC(insertSql, dburl3, dbpsd, dbuser);
}
}