Search in sources :

Example 11 with DalHA

use of com.ctrip.platform.dal.dao.client.DalHA in project dal by ctripcorp.

the class DatabaseSelectorTest method notMasterOnlyHaMarkdownTest.

@Test
public void notMasterOnlyHaMarkdownTest() throws DalException {
    List<DataBase> ms = new ArrayList<DataBase>();
    ms.add(new DataBase(M1, true, "", M1));
    ms.add(new DataBase(M2, true, "", M2));
    List<DataBase> ss = new ArrayList<DataBase>();
    ss.add(new DataBase(S1, false, "", S1));
    ss.add(new DataBase(S2, false, "", S2));
    ss.add(new DataBase(S3, false, "", S3));
    DatabaseSelector selector;
    Set<String> matched;
    autoMarkdown(S1);
    matched = newHashSet(S2, S3);
    DalHints hints = new DalHints().setHA(new DalHA());
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, matched);
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, matched);
    autoMarkdown(M1);
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, M2);
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, M2);
}
Also used : DalHints(com.ctrip.platform.dal.dao.DalHints) DalHA(com.ctrip.platform.dal.dao.client.DalHA) DatabaseSelector(com.ctrip.platform.dal.dao.configure.DatabaseSelector) ArrayList(java.util.ArrayList) DataBase(com.ctrip.platform.dal.dao.configure.DataBase) Test(org.junit.Test)

Example 12 with DalHA

use of com.ctrip.platform.dal.dao.client.DalHA in project dal by ctripcorp.

the class DatabaseSelectorTest method notMasterOnlyHaTest.

@Test
public void notMasterOnlyHaTest() throws DalException {
    List<DataBase> ms = new ArrayList<DataBase>();
    ms.add(new DataBase(M1, true, "", M1));
    ms.add(new DataBase(M2, true, "", M2));
    List<DataBase> ss = new ArrayList<DataBase>();
    ss.add(new DataBase(S1, false, "", S1));
    ss.add(new DataBase(S2, false, "", S2));
    ss.add(new DataBase(S3, false, "", S3));
    DatabaseSelector selector;
    Set<String> matched = newHashSet(S1, S2, S3);
    DalHints hints = new DalHints().setHA(new DalHA());
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, matched);
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, matched);
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, matched);
    matched = newHashSet(M1, M2);
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, matched);
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, matched);
    selector = new DatabaseSelector(hints, ms, ss, false, true);
    assertSelector(selector, ErrorCode.NoMoreConnectionToFailOver);
}
Also used : DalHints(com.ctrip.platform.dal.dao.DalHints) DalHA(com.ctrip.platform.dal.dao.client.DalHA) DatabaseSelector(com.ctrip.platform.dal.dao.configure.DatabaseSelector) ArrayList(java.util.ArrayList) DataBase(com.ctrip.platform.dal.dao.configure.DataBase) Test(org.junit.Test)

Example 13 with DalHA

use of com.ctrip.platform.dal.dao.client.DalHA in project dal by ctripcorp.

the class DatabaseSelectorTest method masterOnlyHaTest.

@Test
public void masterOnlyHaTest() throws DalException {
    List<DataBase> ms = new ArrayList<DataBase>();
    ms.add(new DataBase(M1, true, "", M1));
    ms.add(new DataBase(M2, true, "", M2));
    List<DataBase> ss = new ArrayList<DataBase>();
    ss.add(new DataBase(S1, false, "", S1));
    ss.add(new DataBase(S2, false, "", S2));
    ss.add(new DataBase(S3, false, "", S3));
    DatabaseSelector selector;
    // make sure no slave is qualified
    autoMarkdown(S1);
    autoMarkdown(S2);
    autoMarkdown(S3);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M1)), ms, ss, true, true);
    assertSelector(selector, M2);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M2)), ms, ss, true, true);
    assertSelector(selector, M1);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M1)), ms, ss, true, false);
    assertSelector(selector, M2);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M2)), ms, ss, true, false);
    assertSelector(selector, M1);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M1).addDB(M2)), ms, ss, true, false);
    assertSelector(selector, ErrorCode.NoMoreConnectionToFailOver);
    autoMarkdown(M1);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M1)), ms, ss, true, true);
    assertSelector(selector, M2);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M2)), ms, ss, true, true);
    assertSelector(selector, M2);
    autoMarkup(M1);
    autoMarkdown(M2);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M2)), ms, ss, true, true);
    assertSelector(selector, M1);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M1)), ms, ss, true, true);
    assertSelector(selector, M1);
    autoMarkdown(M1);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M1)), ms, ss, true, true);
    assertSelector(selector, ErrorCode.NoMoreConnectionToFailOver);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M2)), ms, ss, true, true);
    assertSelector(selector, ErrorCode.NoMoreConnectionToFailOver);
    selector = new DatabaseSelector(new DalHints().setHA(new DalHA().addDB(M1).addDB(M2)), ms, ss, true, false);
    assertSelector(selector, ErrorCode.NoMoreConnectionToFailOver);
}
Also used : DalHints(com.ctrip.platform.dal.dao.DalHints) DalHA(com.ctrip.platform.dal.dao.client.DalHA) DatabaseSelector(com.ctrip.platform.dal.dao.configure.DatabaseSelector) ArrayList(java.util.ArrayList) DataBase(com.ctrip.platform.dal.dao.configure.DataBase) Test(org.junit.Test)

Example 14 with DalHA

use of com.ctrip.platform.dal.dao.client.DalHA in project dal by ctripcorp.

the class DatabaseSelectorTest method hasHAMixedMasterAndSlaveButOneSlaveMarkdownTest.

@Test
public void hasHAMixedMasterAndSlaveButOneSlaveMarkdownTest() throws DalException {
    List<DataBase> ms = new ArrayList<DataBase>();
    ms.add(new DataBase(M1, true, "", M1));
    ms.add(new DataBase(M2, true, "", M2));
    List<DataBase> ss = new ArrayList<DataBase>();
    ss.add(new DataBase(S1, false, "", S1));
    ss.add(new DataBase(S2, false, "", S2));
    autoMarkdown(S1);
    DalHA ha = new DalHA();
    ha.addDB(M1);
    DatabaseSelector selector = new DatabaseSelector(new DalHints().setHA(ha), ms, ss, false, true);
    String dbName = selector.select();
    Assert.assertTrue(dbName.equals(S2));
    // masterOnly
    ha = new DalHA();
    ha.addDB(M1);
    selector = new DatabaseSelector(new DalHints().setHA(ha), ms, ss, true, true);
    Assert.assertEquals(M2, selector.select());
    ha = new DalHA();
    ha.addDB(M1);
    selector = new DatabaseSelector(new DalHints().setHA(ha), ms, ss, true, false);
    Assert.assertEquals(M2, selector.select());
    ha = new DalHA();
    ha.addDB(M1);
    selector = new DatabaseSelector(new DalHints().setHA(ha), ms, ss, false, false);
    Assert.assertEquals(M2, selector.select());
    ha = new DalHA();
    ha.addDB(M1);
    selector = new DatabaseSelector(new DalHints().setHA(ha).inDatabase(M1), ms, ss, false, false);
    assertSelector(selector, ErrorCode.NoMoreConnectionToFailOver);
    ha = new DalHA();
    ha.addDB(M1);
    autoMarkdown(M2);
    selector = new DatabaseSelector(new DalHints().setHA(ha), ms, ss, false, false);
    Assert.assertEquals(M1, selector.select());
}
Also used : DalHints(com.ctrip.platform.dal.dao.DalHints) DalHA(com.ctrip.platform.dal.dao.client.DalHA) DatabaseSelector(com.ctrip.platform.dal.dao.configure.DatabaseSelector) ArrayList(java.util.ArrayList) DataBase(com.ctrip.platform.dal.dao.configure.DataBase) Test(org.junit.Test)

Example 15 with DalHA

use of com.ctrip.platform.dal.dao.client.DalHA in project dal by ctripcorp.

the class DatabaseSelectorTest method hasHASlavesOneMarkdownTest.

@Test
public void hasHASlavesOneMarkdownTest() throws DalException {
    List<DataBase> ss = new ArrayList<DataBase>();
    ss.add(new DataBase(S1, false, "", S1));
    ss.add(new DataBase(S2, false, "", S2));
    DalHA ha = new DalHA();
    autoMarkdown(S2);
    DatabaseSelector selector = new DatabaseSelector(new DalHints().setHA(ha), null, ss, false, true);
    Assert.assertEquals(S1, selector.select());
    // masterOnly
    ha = new DalHA();
    selector = new DatabaseSelector(new DalHints().setHA(ha), null, ss, true, true);
    assertSelector(selector, ErrorCode.NullLogicDbName);
    ha = new DalHA();
    selector = new DatabaseSelector(new DalHints().setHA(ha), null, ss, true, false);
    assertSelector(selector, ErrorCode.NullLogicDbName);
}
Also used : DalHints(com.ctrip.platform.dal.dao.DalHints) DalHA(com.ctrip.platform.dal.dao.client.DalHA) DatabaseSelector(com.ctrip.platform.dal.dao.configure.DatabaseSelector) ArrayList(java.util.ArrayList) DataBase(com.ctrip.platform.dal.dao.configure.DataBase) Test(org.junit.Test)

Aggregations

DalHints (com.ctrip.platform.dal.dao.DalHints)15 DalHA (com.ctrip.platform.dal.dao.client.DalHA)15 DataBase (com.ctrip.platform.dal.dao.configure.DataBase)15 DatabaseSelector (com.ctrip.platform.dal.dao.configure.DatabaseSelector)15 ArrayList (java.util.ArrayList)15 Test (org.junit.Test)15