package com.alipay.zdal.test.rw;
import static com.alipay.ats.internal.domain.ATS.Step;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
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.client.jdbc.ZdalDataSource;
import com.alipay.zdal.test.common.ZdalTestCommon;
@RunWith(ATSJUnitRunner.class)
@Feature("�����ڵ���������")
public class SR952090 {
public TestAssertion Assert = new TestAssertion();
private Connection cn = null;
private Statement st = null;
private ZdalDataSource zdalDataSource = null;
@Before
public void beforeTestCase() {
zdalDataSource = (ZdalDataSource) ZdalRwSuite.context
.getBean("zdalRwDSMysql2");
try {
cn = zdalDataSource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@After
public void afterTestCase() {
try {
ZdalTestCommon.dataDeleteForZds();
st.close();
cn.close();
//zdalDataSource.close();
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
st = null;
cn = null;
zdalDataSource = null;
}
}
@Subject("��������д���,��д�������[Ŀǰֻ֧��һ��д��]����Ϊ��������")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC952091() {
try {
Step("��������д���,��д�������[Ŀǰֻ֧��һ��д��]����Ϊ��������");
cn.setAutoCommit(false);
st = cn.createStatement();
st.execute("insert into test1 value(111,'DB_G')");
ResultSet rs = st
.executeQuery("select count(*) from test1 where clum=111");
rs.next();
int count = rs.getInt(1);
Step("��������");
Assert.areEqual(1, count, "��������");
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Assert.isFalse(true, "��Ԥ���쳣" + e);
}
}
@Subject("�������ȶ���д,��д�������[Ŀǰֻ֧��һ��д��]����Ϊ��������")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC952092() {
Step("������");
ZdalTestCommon.dataPrepareForZds();
Step("��������");
try {
cn.setAutoCommit(false);
st = cn.createStatement();
st.execute("select count(*) from test1 where clum=100");
st.execute("insert into test1 value(112,'DB_G')");
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Assert.isFalse(true, "��Ԥ���쳣" + e);
}
}
@Subject("������������,��д�������[Ŀǰֻ֧��һ��д��]����Ϊ��������")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC952093(){
Step("������");
ZdalTestCommon.dataPrepareForZds();
Step("��������");
try {
cn.setAutoCommit(false);
st = cn.createStatement();
st.execute("select count(*) from test1 where clum=100");
st.execute("select count(*) from test1 where clum=112");
st.execute("select count(*) from test1 where clum=113");
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Assert.isFalse(true, "��Ԥ���쳣" + e);
}
}
@Subject("����������д")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC952094(){
Step(" ��������");
try {
cn.setAutoCommit(false);
st = cn.createStatement();
st.execute("insert into test1 value(112,'DB_G')");
st.execute("insert into test1 value(113,'DB_G')");
st.execute("insert into test1 value(114,'DB_G')");
cn.commit();
cn.setAutoCommit(true);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Assert.isFalse(true, "��Ԥ���쳣" + e);
}
}
@Subject("����������ͬʱ�ر�")
@Priority(PriorityLevel.HIGHEST)
@Test
public void TC952095(){
long cCount=1;
try {
cn.setAutoCommit(false);
st =cn.createStatement();
Step("����1���������ύ");
st.execute("select * from test1 where clum = 12");
st.execute("delete from test1 where clum = 12");
cn.commit();
cn.setAutoCommit(true);
Step("������һ������");
Step("����2���������ύ");
cn.setAutoCommit(false);
java.sql.Statement st1 = cn.createStatement();
st1.execute("select * from test1 where clum = 12");
st1.execute("delete from test1 where clum = 12");
cn.commit();
cn.setAutoCommit(true);
cn.close();
cCount=zdalDataSource.getDataSourcesMap().get("ds1").getLocalTxDataSource().getPoolCondition().getInUseConnectionCount();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Assert.areEqual(Long.parseLong("0"), cCount, "���������ѹر�");
}
}