package com.alipay.zdal.test.shardrw;
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.After;
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+rw����")
public class SR954150 {
public TestAssertion Assert = new TestAssertion();;
private SqlMapClient sqlMap;
private String url0;
private String url0_bac;
private String user;
private String psd;
@Before
public void beforeTestCase() {
url0=ConstantsTest.mysql12UrlTranation0;
url0_bac = ConstantsTest.mysql12UrlTranation0_bac;
user = ConstantsTest.mysq112User;
psd = ConstantsTest.mysq112Psd;
sqlMap = (SqlMapClient) ZdalShardrwSuite.context
.getBean("zdalShardrwWriteReadRetry");
}
@After
public void afterTestCase(){
Step("ɾ������");
String delStr = "delete from user_0";
ZdalTestCommon.dataUpdateJDBC(delStr, url0, psd, user);
ZdalTestCommon.dataUpdateJDBC(delStr, url0_bac, psd, user);
}
@Subject("shard+rw��д�⣬�ֿgroup_0�� ds0:r2w10,ds2:r10w5,����ds0������,ȫ��д��ds2��")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC954151() {
Step("shard+rw��д�⣬�ֿgroup_0�� ds0:r2w10,ds2:r10w5,����ds0������,ȫ��д��ds2��");
int countA = 0;
Map<String, Object> params = new HashMap<String, Object>();
for (int i = 0; i < 20; i++) {
try {
params.put("user_id", 10 * i);
params.put("age", Integer.valueOf("10"));
params.put("name", "test_address");
sqlMap.insert("insertShardrwMysql", params);
} catch (Exception ex) {
ex.printStackTrace();
}
Step("�������");
String sqlStr = "select count(*) from user_0";
ResultSet rs0 = ZdalTestCommon.dataCheckFromJDBC(sqlStr, url0_bac,
psd, user);
try {
rs0.next();
countA = rs0.getInt(1);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Assert.areEqual(true, countA == 20, "����¼����,countA="+countA);
}
@SuppressWarnings("unchecked")
@Subject("shard+rw�����⣬�ֿgroup_0�� ds0:r2w10,ds2:r10w5,����ds0������,ȫ����ds2�ж�")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC954152(){
Step("shard+rw�����⣬�ֿgroup_0�� ds0:r2w10,ds2:r10w5,����ds0������,ȫ����ds2�ж�");
int countA=0;
int countB=0;
Step("������");
String insertSql1="insert into user_0 (user_id,age,name,gmt_created,gmt_modified) values (10,10,'DB_A',now(),now())";
String insertSql2="insert into user_0 (user_id,age,name,gmt_created,gmt_modified) values (10,10,'DB_B',now(),now())";
ZdalTestCommon.dataUpdateJDBC(insertSql1, url0, psd, user);
ZdalTestCommon.dataUpdateJDBC(insertSql2, url0_bac, psd, user);
Step("������");
for(int readnum=0;readnum<20;readnum++){
try {
List<Object> sr=(List<Object>)sqlMap.queryForList("selectShardrwMysql");
for(int i=0;i<sr.size();i++){
HashMap<String, String> hs = (HashMap<String, String>) sr
.get(i);
if ("DB_A".equalsIgnoreCase((String) hs.get("name"))) {
countA++;
} else if ("DB_B"
.equalsIgnoreCase((String) hs.get("name"))) {
countB++;
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Assert.areEqual(true, countB==20, "shardrw�Ķ�д����,countB="+countB);
}
}