package com.alipay.zdal.test.sqlparser;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import static com.alipay.ats.internal.domain.ATS.Step;
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����Դ:���ӵ�select���")
public class SR956020 {
private String url0=ConstantsTest.mysq112UrlFail0;
private String url1=ConstantsTest.mysq112UrlFail1;
private String url2=ConstantsTest.mysql12UrlSample0;
private String url3=ConstantsTest.mysql12UrlSample1;
private String user=ConstantsTest.mysq112User;
private String psd=ConstantsTest.mysq112Psd;
public TestAssertion Assert = new TestAssertion();
private SqlMapClient sqlMap;
private List<Object> rs = null;
@Subject("���뵽0��0��ִ��:insert into student (id,age,name,content) values (#id#,#age#,'testname','testcontent')")
@Priority(PriorityLevel.NORMAL)
@Test
public void TC956021(){
sqlMap = (SqlMapClient) ZdalSqlParserSuite.context
.getBean("zdalsqlParserMysql02");
Step("����0���0��");
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("id", 10);
params.put("age", 10);
try {
sqlMap.insert("zdalsqlParserMysql02InsertSql",
params);
} catch (Exception ex) {
ex.printStackTrace();
}
Step("���Բ��뵽0��0��");
String selectSql="select count(*) from student_0 where id=10 and age=10";
ResultSet rs=ZdalTestCommon.dataCheckFromJDBCOracle(selectSql,url0,psd,user);
try {
Assert.isTrue(rs.next(), "��֤��ѯ���");
Assert.areEqual(1, rs.getInt(1), "���뵽0��0��ִ��:insert into student (id,age,name,content) values (#id#,#age#,'testname','testcontent')");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Step("�������");
String deleteSql="delete from student_0";
ZdalTestCommon.dataUpdateJDBC(deleteSql, url0, psd, user);
}
@Subject("�嵽1��1��ִ��:insert into student (id,age,name,content) values (#id#,#age#,'testname','testcontent')")
@Priority(PriorityLevel.NORMAL)
@Test
public void TC956022(){
sqlMap = (SqlMapClient) ZdalSqlParserSuite.context
.getBean("zdalsqlParserMysql02");
Step("����1���1��");
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("id", 11);
params.put("age", 11);
try {
sqlMap.insert("zdalsqlParserMysql02InsertSql",
params);
} catch (Exception ex) {
ex.printStackTrace();
}
Step("���Բ��뵽1��1��");
String selectSql="select count(*) from student_1 where id=11 and age=11";
ResultSet rs=ZdalTestCommon.dataCheckFromJDBCOracle(selectSql,url1,psd,user);
try {
Assert.isTrue(rs.next(), "��֤��ѯ���");
Assert.areEqual(1, rs.getInt(1), "�嵽1��1��ִ��:insert into student (id,age,name,content) values (#id#,#age#,'testname','testcontent')");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Step("�������");
String deleteSql="delete from student_1";
ZdalTestCommon.dataUpdateJDBC(deleteSql, url1, psd, user);
}
@Subject("ִ��sql��䣬��1�����2��������merge")
@Priority(PriorityLevel.NORMAL)
@Test
public void TC956023(){
Step("��1���10���09���зֱ��������");
String insertSql1="insert into card_no_month_01_10(card_no,gmtTime,next_sync_time) values('2013101711','2013-11-22','2013-11-22')";
String insertSql2="insert into card_no_month_01_09(card_no,gmtTime,next_sync_time) values('2013101711','2013-10-22','2013-10-22')";
ZdalTestCommon.dataUpdateJDBC(insertSql1, url3, psd, user);
ZdalTestCommon.dataUpdateJDBC(insertSql2, url3, psd, user);
Step("��ѯ��������¼�������Ҫ�������������merge");
sqlMap = (SqlMapClient) ZdalSqlParserSuite.context
.getBean("zdalsqlParserMysql03");
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("card_no", "2013101711");
params.put("gmtTime1", Date.valueOf("2013-05-17"));
params.put("gmtTime2", Date.valueOf("2013-12-22"));
try {
rs=(List<Object>)sqlMap.queryForList("zdalsqlParserMysql03SelectSql",params);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HashMap hs=(HashMap)rs.get(0);
Assert.areEqual("2", hs.get("count").toString(), "��1�����2�������select��䣬��ѯ�����Ҫmerge");
Step("�������");
String deleteSql="delete from card_no_month_01_09";
String deleteSql2="delete from card_no_month_01_10";
ZdalTestCommon.dataUpdateJDBC(deleteSql, url3, psd, user);
ZdalTestCommon.dataUpdateJDBC(deleteSql2, url3, psd, user);
}
}