package com.taobao.tddl.qatest.group; import java.util.concurrent.TimeUnit; import org.junit.Assert; import org.junit.Test; import com.taobao.diamond.mockserver.MockServer; import com.taobao.tddl.atom.common.TAtomConstants; /** * Comment for GroupRetryByRealExecuteTest * <p/> * Created Date: 2010-12-8 03:19:04 */ public class GroupRetryExecuteTest extends GroupTestCase { private String sql = "select * from normaltbl_0000 where pk = 0"; @Test public void oneOfAtomDssInGropuIsOkTest() throws Exception { // 改变group中的rw状态(确保推送成功) for (int i = 0; i < 2; i++) { MockServer.setConfigInfo(tds.getFullDbGroupKey(), "qatest_normal_0:NA,qatest_normal_0_bac:r,qatest_normal_1_bac:r"); TimeUnit.SECONDS.sleep(SLEEP_TIME); } int successCnt = 0; for (int i = 0; i < 20; i++) { tddlJT.queryForList(sql); successCnt++; } Assert.assertEquals(20, successCnt); // qatest_normal_0状态改为只读(确保推送成功) for (int i = 0; i < 2; i++) { MockServer.setConfigInfo(TAtomConstants.getGlobalDataId(DBKEY_0), "ip=10.232.31.154\r\nport=3306\r\ndbName=qatest_normal_0\r\ndbType=mysql\r\ndbStatus=NA"); MockServer.setConfigInfo(tds.getFullDbGroupKey(), "qatest_normal_0:wr,qatest_normal_0_bac:r,qatest_normal_1_bac:r"); TimeUnit.SECONDS.sleep(SLEEP_TIME); } successCnt = 0; for (int i = 0; i < 20; i++) { tddlJT.queryForList(sql); successCnt++; } Assert.assertEquals(20, successCnt); } @Test public void noneOfAtomDssInGropuIsOkTest() throws Exception { // 改变group中的rw状态(确保推送成功) for (int i = 0; i < 2; i++) { MockServer.setConfigInfo(tds.getFullDbGroupKey(), "qatest_normal_0:NA,qatest_normal_0_bac:NA,qatest_normal_1_bac:NA"); TimeUnit.SECONDS.sleep(SLEEP_TIME); } for (int i = 0; i < 20; i++) { try { tddlJT.queryForList(sql); Assert.fail(); } catch (Exception e) { System.out.println("qatest_normal_0's dbStatus=NA"); } } // 改变atomDs的状态(确保推送成功) for (int i = 0; i < 2; i++) { MockServer.setConfigInfo(TAtomConstants.getGlobalDataId(DBKEY_0), "ip=10.232.31.154\r\nport=3306\r\ndbName=qatest_normal_0\r\ndbType=mysql\r\ndbStatus=NA"); MockServer.setConfigInfo(TAtomConstants.getGlobalDataId(DBKEY_0_BAC), "ip=10.232.31.154\r\nport=3306\r\ndbName=qatest_normal_0_bac\r\ndbType=mysql\r\ndbStatus=NA"); MockServer.setConfigInfo(TAtomConstants.getGlobalDataId(DBKEY_1_BAC), "ip=10.232.31.154\r\nport=3306\r\ndbName=qatest_normal_1_bac\r\ndbType=mysql\r\ndbStatus=NA"); MockServer.setConfigInfo(tds.getFullDbGroupKey(), "qatest_normal_0:wr,qatest_normal_0_bac:r,qatest_normal_1_bac:r"); TimeUnit.SECONDS.sleep(SLEEP_TIME); } for (int i = 0; i < 20; i++) { try { tddlJT.queryForList(sql); Assert.fail(); } catch (Exception e) { System.out.println("qatest_normal_0's dbStatus=NA"); } } } }