package com.alipay.zdal.test.shardrw; import java.sql.ResultSet; import static com.alipay.ats.internal.domain.ATS.Step; import java.sql.SQLException; import java.util.HashMap; import java.util.List; import java.util.Map; 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 SR954110 { public TestAssertion Assert = new TestAssertion();; private SqlMapClient sqlMap; private String dbpsd; private String dbuser; private String dburl1; private String dburl0bac; private String dburl1bac; @Before public void beforeTestCase() { dburl1 = ConstantsTest.mysql12UrlTranation1; dburl0bac=ConstantsTest.mysql12UrlTranation0_bac; dburl1bac=ConstantsTest.mysql12UrlTranation1_bac; dbuser = ConstantsTest.mysq112User; dbpsd = ConstantsTest.mysq112Psd; sqlMap = (SqlMapClient) ZdalShardrwSuite.context .getBean("zdalShardrwShardDbShardTable"); } @Subject("shard+rw���ֿ�ֱ�д�⡣дgroup_1���ds1��user_1��") @Priority(PriorityLevel.HIGHEST) @Test public void TC954111() { Step("shard+rw���ֿ�ֱ�д�⡣дgroup_1���ds1��user_1��"); Map<String, Object> params = new HashMap<String, Object>(); params.put("user_id", Integer.valueOf("11")); params.put("age", Integer.valueOf("11")); params.put("name", "test_address"); try { sqlMap.insert("insertShardrwMysql", params); } catch (Exception ex) { ex.printStackTrace(); } testCheckData(dburl1); testDeleData(dburl1); } @SuppressWarnings("unchecked") @Subject("shard+rw���ֿ�ֱ����⡣��group_0���ds2��user_1��") @Priority(PriorityLevel.HIGHEST) @Test public void TC954112() { Step("shard+rw���ֿ�ֱ����⡣��group_0���ds2��user_1��"); testPrepareData(); Map<String, Object> params = new HashMap<String, Object>(); params.put("user_id", Integer.valueOf("2")); params.put("age", Integer.valueOf("1")); try { List<Object> rs=(List<Object>)sqlMap.queryForList("selectShardrwMysqlPriority",params); Assert.areEqual(1, rs.size(), "����ѯ�����¼"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); Assert.areEqual(1, 2, "���ó��ֵ��쳣"); } Step("�������"); testDeleData(dburl0bac); } @Subject("shard+rw���ֿ�ֱ����⡣��group_0,group_1����ı�,�Խ������merge") @Priority(PriorityLevel.HIGHEST) @Test public void TC954113(){ testPrepareData1(); try { List<Object> rs=(List<Object>)sqlMap.queryForList("selectShardrwMysqlMergeResult"); Assert.areEqual(2, rs.size(), "����ѯ�����¼"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } testDeleData1(); } @Subject("shard+rw���ֿ�ֱ����⡣��group_0,group_1����ı�,�Խ������merge,���ҶԽ����sum��ֵ") @Priority(PriorityLevel.HIGHEST) @Test public void TC954114(){ testPrepareData1(); try { List<Object> rs=(List<Object>)sqlMap.queryForList("selectShardrwMysqlMergeResultSum"); Assert.areEqual(1, rs.size(), "����ѯ�����¼"); HashMap hm=(HashMap)rs.get(0); String sumvalue=hm.get("sumvalue").toString(); Assert.areEqual("5", sumvalue, "���SUM��ֵ"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } testDeleData1(); } @Subject("shard+rw���ֿ�ֱ����⡣��group_0,group_1����ı�,�Խ������merge,���ҶԽ����min��ֵ") @Priority(PriorityLevel.HIGHEST) @Test public void TC954115(){ testPrepareData1(); try { List<Object> rs=(List<Object>)sqlMap.queryForList("selectShardrwMysqlMergeResultMin"); Assert.areEqual(1, rs.size(), "����ѯ�����¼"); HashMap hm=(HashMap)rs.get(0); String minvalue=hm.get("minvalue").toString(); Assert.areEqual("2", minvalue, "���MIN��ֵ"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } testDeleData1(); } @Subject("shard+rw���ֿ�ֱ����⡣��group_0,group_1����ı�,�Խ������merge,���ҶԽ����max��ֵ") @Priority(PriorityLevel.HIGHEST) @Test public void TC954116(){ testPrepareData1(); try { List<Object> rs=(List<Object>)sqlMap.queryForList("selectShardrwMysqlMergeResultMax"); Assert.areEqual(1, rs.size(), "����ѯ�����¼"); HashMap hm=(HashMap)rs.get(0); String maxvalue=hm.get("maxvalue").toString(); Assert.areEqual("3", maxvalue, "���MAX��ֵ"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } testDeleData1(); } @Subject("shard+rw���ֿ�ֱ����⡣��group_0,group_1�����user_0��user_1������,�Խ������merge") @Priority(PriorityLevel.HIGHEST) @Test public void TC954117(){ testPrepareData2(); try { List<Object> rs=(List<Object>)sqlMap.queryForList("selectShardrwMysqlTwoTablesMergeResult"); Assert.areEqual(4, rs.size(), "����ѯ�����¼"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } testDeleData2(); } @Subject("shard+rw���ֿ�ֱ����⡣��group_0,group_1�����user_0��user_1������,�Խ������merge,����sumֵ") @Priority(PriorityLevel.HIGHEST) @Test public void TC954118(){ testPrepareData2(); try { List<Object> rs=(List<Object>)sqlMap.queryForList("selectShardrwMysqlTwoTablesMergeResultSum"); Assert.areEqual(1, rs.size(), "����ѯ�����¼"); HashMap hm=(HashMap)rs.get(0); String sumvalue=hm.get("sumvalue").toString(); Assert.areEqual("10", sumvalue, "���sumֵ"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } testDeleData2(); } /** * ����������� * * @param dburl */ private void testCheckData(String dburl) { String sql = "select count(*) from user_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(); } } /** * �������� */ private void testDeleData(String dburl) { String delStr = "delete from user_1"; ZdalTestCommon.dataUpdateJDBC(delStr, dburl, dbpsd, dbuser); } /** * ׼������ */ private void testPrepareData() { String insertSql = "insert into user_1 (user_id,age,name,gmt_created,gmt_modified) values (2,1,'test',now(),now()) "; ZdalTestCommon.dataUpdateJDBC(insertSql, dburl0bac, dbpsd, dbuser); } private void testPrepareData1(){ String insertSql = "insert into user_1 (user_id,age,name,gmt_created,gmt_modified) values (2,1,'testbac_0',now(),now()) "; String insertSql1="insert into user_1 (user_id,age,name,gmt_created,gmt_modified) values (3,1,'testbac_1',now(),now()) "; ZdalTestCommon.dataUpdateJDBC(insertSql, dburl0bac, dbpsd, dbuser); ZdalTestCommon.dataUpdateJDBC(insertSql1, dburl1bac, dbpsd, dbuser); } private void testDeleData1() { String delStr = "delete from user_1"; ZdalTestCommon.dataUpdateJDBC(delStr, dburl0bac, dbpsd, dbuser); ZdalTestCommon.dataUpdateJDBC(delStr, dburl1bac, dbpsd, dbuser); } private void testPrepareData2(){ String insertSql_0="insert into user_0 (user_id,age,name,gmt_created,gmt_modified) values (2,2,'testbac_0',now(),now())"; String insertSql = "insert into user_1 (user_id,age,name,gmt_created,gmt_modified) values (2,1,'testbac_0',now(),now()) "; String insertSql1_0="insert into user_0 (user_id,age,name,gmt_created,gmt_modified) values (3,2,'testbac_1',now(),now()) "; String insertSql1="insert into user_1 (user_id,age,name,gmt_created,gmt_modified) values (3,1,'testbac_1',now(),now()) "; ZdalTestCommon.dataUpdateJDBC(insertSql_0, dburl0bac, dbpsd, dbuser); ZdalTestCommon.dataUpdateJDBC(insertSql, dburl0bac, dbpsd, dbuser); ZdalTestCommon.dataUpdateJDBC(insertSql1_0, dburl1bac, dbpsd, dbuser); ZdalTestCommon.dataUpdateJDBC(insertSql1, dburl1bac, dbpsd, dbuser); } private void testDeleData2() { String delStr_0 = "delete from user_0"; String delStr = "delete from user_1"; ZdalTestCommon.dataUpdateJDBC(delStr_0, dburl0bac, dbpsd, dbuser); ZdalTestCommon.dataUpdateJDBC(delStr, dburl0bac, dbpsd, dbuser); ZdalTestCommon.dataUpdateJDBC(delStr_0, dburl1bac, dbpsd, dbuser); ZdalTestCommon.dataUpdateJDBC(delStr, dburl1bac, dbpsd, dbuser); } }