package com.alipay.zdal.test.shardfailover;
import java.sql.SQLException;
import static com.alipay.ats.internal.domain.ATS.Step;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
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.client.ThreadLocalString;
import com.alipay.zdal.client.util.ThreadLocalMap;
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����Դ��ȡdbid������������������group,������ִ��sql����")
public class SR953010 {
public TestAssertion Assert = new TestAssertion();;
private SqlMapClient sqlMap;
@SuppressWarnings("unchecked")
@Subject("��ȡdbId: zoneDs=master_0,zoneError=Exception.д�� master_0���users_0��")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC953011() {
Step("��ȡdbId: zoneDs=master_0,zoneError=Exception.д�� master_0���users_0��");
sqlMap = (SqlMapClient) ZdalShardfailoverSuite.context
.getBean("zdalZoneDsZoneErrorRight");
Map<String, Object> params = new HashMap<String, Object>();
params.put("user_id", Integer.valueOf("10"));
params.put("name", "test_users");
params.put("address", "test_address");
try {
sqlMap.insert("insertZoneDsZoneError", params);
Map<String, DataSource> map = (Map<String, DataSource>) ThreadLocalMap
.get(ThreadLocalString.GET_ID_AND_DATABASE);
for (Map.Entry<String, DataSource> entry : map.entrySet()) {
String dbId = entry.getKey();
Assert.areEqual("zdalZoneDsZoneErrorRight.master_0", dbId, "��֤dbid");
}
} catch (Exception ex) {
ex.printStackTrace();
Assert.areEqual(1, 2, "insertZoneDsZoneError Exception");
}
Step("ɾ������");
String delsqlStr = "delete from users_0";
String dburl = ConstantsTest.mysq112UrlTddl0;
String dbpsd = ConstantsTest.mysq112Psd;
String dbuser = ConstantsTest.mysq112User;
ZdalTestCommon.dataUpdateJDBC(delsqlStr, dburl, dbpsd, dbuser);
}
@SuppressWarnings("unchecked")
@Subject("��ȡdbId: zoneDs=master_0,zoneError=Exception.���� master_0���users_0��")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC953012() {
Step("��ȡdbId: zoneDs=master_0,zoneError=Exception.���� master_0���users_0��");
sqlMap = (SqlMapClient) ZdalShardfailoverSuite.context
.getBean("zdalZoneDsZoneErrorRight");
Map<String, Object> params = new HashMap<String, Object>();
params.put("user_id", Integer.valueOf("10"));
try {
sqlMap.queryForList("selectZoneDsZoneError", params);
Map<String, DataSource> map = (Map<String, DataSource>) ThreadLocalMap
.get(ThreadLocalString.GET_ID_AND_DATABASE);
for (Map.Entry<String, DataSource> entry : map.entrySet()) {
String dbId = entry.getKey();
Assert.areEqual("zdalZoneDsZoneErrorRight.master_0", dbId, "��֤dbid");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}