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.Test; import org.junit.runner.RunWith; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.TransactionCallback; import org.springframework.transaction.support.TransactionTemplate; 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 SR953050 { public TestAssertion Assert = new TestAssertion(); private TransactionTemplate tt; private SqlMapClient sqlMap; @Subject("shard+rw:zdal����������룬Ԥ��д��master_1��1��IJ���") @Priority(PriorityLevel.HIGHEST) @Test public void TC953051() { Step("shard+rw:zdal����������룬Ԥ��д��master_1��1��IJ���"); sqlMap = (SqlMapClient) ZdalShardfailoverSuite.context .getBean("zdalShardfailoverShardDbShardTable"); tt = (TransactionTemplate) ZdalShardfailoverSuite.context .getBean("shardfailovertransactionTemplate1"); testTransactionInsertSelect(); Step("��֤���ݣ��������"); testCheckData(); } /** * ��insert��select������ */ private void testTransactionInsertSelect(){ try { tt.execute(new TransactionCallback() { @SuppressWarnings("unchecked") public Object doInTransaction(TransactionStatus status) { Map<String, Object> params = new HashMap<String, Object>(); Map<String, Object> params2 = new HashMap<String, Object>(); params.put("user_id", 1); params.put("name", "testshardfailover"); params.put("address", "test"); String insertSql = "insertShardfailoverMysql"; params2.put("user_id", 1); String selectSql = "selectShardfailoverMysql"; try { sqlMap.insert(insertSql,params); List<Object> res_1 =sqlMap.queryForList(selectSql,params2); Assert.areEqual(1, res_1.size(), "��֤select����ǿ�"); } catch (SQLException e) { status.setRollbackOnly(); e.printStackTrace(); } return null; } }); } catch (Exception ex) { ex.printStackTrace(); } } /** * �����������,֮��ɾ������ * * */ private void testCheckData() { String dburl=ConstantsTest.mysq112UrlTddl1; String dbpsd=ConstantsTest.mysq112Psd; String dbuser=ConstantsTest.mysq112User; 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(); } String delStr="delete from users_1"; ZdalTestCommon.dataUpdateJDBC(delStr,dburl,dbpsd,dbuser); } }