mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
08.36.2013 f9e5c17fd659f6dc27cfb7c357bb56b58af1921f
(CR-1387) Making AssuredReplicationServerTest.java more maintainable

AssuredReplicationServerTest.java:
In createReplicationServer(), added parameter int nbRS, removed some complicated code that I replaced with generateReplicationServerUrls() and addIfNotSame(). I think this explicits better what this code is doing.
Extracted method getRsPort(int rsId).
1 files modified
215 ■■■■■ changed files
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java 215 ●●●●● patch | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java
@@ -399,20 +399,8 @@
    assuredMode, safeDataLevel, assuredTimeout, scenario, serverState, true, 100);
  }
  /**
   * Creates a new fake replication domain, using the passed scenario.
   * If connect = true , we start both publish and listen service and publish
   * service uses the default window value. If false, we only start publish
   * service and use the passed window value
   */
  private FakeReplicationDomain createFakeReplicationDomain(int serverId,
    int groupId, int rsId, long generationId, boolean assured,
    AssuredMode assuredMode, int safeDataLevel, long assuredTimeout,
    int scenario, ServerState serverState, boolean startListen, int window)
      throws Exception
  private int getRsPort(int rsId)
  {
    {
      // Set port to right real RS according to its id
      int rsPort = -1;
      switch (rsId)
      {
@@ -431,6 +419,26 @@
        default:
          fail("Unknown RS id: " + rsId);
      }
    return rsPort;
  }
  /**
   * Creates a new fake replication domain, using the passed scenario.
   *
   * @param the scenario to follow
   * @param startListen
   *          If true, we start the listen service. In all cases, the publish
   *          service gets started.
   */
  private FakeReplicationDomain createFakeReplicationDomain(int serverId,
    int groupId, int rsId, long generationId, boolean assured,
    AssuredMode assuredMode, int safeDataLevel, long assuredTimeout,
    int scenario, ServerState serverState, boolean startListen, int window)
      throws Exception
  {
    {
      // Set port to right real RS according to its id
      int rsPort = getRsPort(rsId);
      FakeReplicationDomain fakeReplicationDomain = new FakeReplicationDomain(
        TEST_ROOT_DN_STRING, serverId, generationId,
@@ -474,21 +482,7 @@
  {
    {
      // Set port to right real RS according to its id
      int rsPort = -1;
      switch (rsId)
      {
        case RS1_ID:
          rsPort = rs1Port;
          break;
        case RS2_ID:
          rsPort = rs2Port;
          break;
        case RS3_ID:
          rsPort = rs3Port;
          break;
        default:
          fail("Unknown RS id: " + rsId);
      }
      int rsPort = getRsPort(rsId);
      FakeReplicationServer fakeReplicationServer = new FakeReplicationServer(
        rsPort, serverId, assured, assuredMode, (byte)safeDataLevel, (byte)groupId,
@@ -507,99 +501,62 @@
  /**
   * Creates a new real replication server (one which is to be tested).
   */
  private ReplicationServer createReplicationServer(int serverId,
    int groupId, long assuredTimeout, String testCase) throws Exception
  private ReplicationServer createReplicationServer(int serverId, int groupId,
      long assuredTimeout, String testCase, int nbRS) throws ConfigException
  {
    SortedSet<String> replServers = new TreeSet<String>();
    {
      int port = -1;
      if (serverId == RS1_ID)
      {
        port = rs1Port;
        if (testCase.equals("testSafeDataManyRealRSs") || testCase.equals("testSafeReadManyRSsAndDSs"))
        {
          // Every 3 RSs connected together
          replServers.add("localhost:" + rs2Port);
          replServers.add("localhost:" + rs3Port);
          if (testCase.equals("testSafeReadManyRSsAndDSs"))
          {
           // Every 4 RSs connected together
           replServers.add("localhost:" + rs4Port);
          }
        } else if (testCase.equals("testSafeReadMultiGroups") || testCase.equals("testSafeReadTwoRSs"))
        {
          // Every 2 RSs connected together
          replServers.add("localhost:" + rs2Port);
        } else
        {
          // Let this server alone
        }
      } else if (serverId == RS2_ID)
      {
        port = rs2Port;
        if (testCase.equals("testSafeDataManyRealRSs") || testCase.equals("testSafeReadManyRSsAndDSs"))
        {
          // Every 3 RSs connected together
          replServers.add("localhost:" + rs1Port);
          replServers.add("localhost:" + rs3Port);
          if (testCase.equals("testSafeReadManyRSsAndDSs"))
          {
           // Every 4 RSs connected together
           replServers.add("localhost:" + rs4Port);
          }
        } else if (testCase.equals("testSafeReadMultiGroups") || testCase.equals("testSafeReadTwoRSs"))
        {
          // Every 2 RSs connected together
          replServers.add("localhost:" + rs1Port);
        } else
        {
          // Let this server alone
        }
      } else if (serverId == RS3_ID)
      {
        port = rs3Port;
        if (testCase.equals("testSafeDataManyRealRSs") || testCase.equals("testSafeReadManyRSsAndDSs"))
        {
          // Every 3 RSs connected together
          replServers.add("localhost:" + rs1Port);
          replServers.add("localhost:" + rs2Port);
          if (testCase.equals("testSafeReadManyRSsAndDSs"))
          {
           // Every 4 RSs connected together
           replServers.add("localhost:" + rs4Port);
          }
        } else
        {
          // Let this server alone
        }
      } else if (serverId == RS4_ID)
      {
        port = rs4Port;
        if (testCase.equals("testSafeReadManyRSsAndDSs"))
        {
          // Every 4 RSs connected together
          replServers.add("localhost:" + rs1Port);
          replServers.add("localhost:" + rs2Port);
          replServers.add("localhost:" + rs3Port);
        } else
        {
          // Let this server alone
        }
      } else
      {
        fail("Unknown replication server id.");
      }
    int port = getRsPort(serverId);
    SortedSet<String> replServers = generateReplicationServerUrls(port, nbRS);
      String dir = testName + serverId + testCase + "Db";
      ReplServerFakeConfiguration conf =
        new ReplServerFakeConfiguration(port, dir, 0, serverId, 0, 100,
        replServers, groupId, assuredTimeout, 5000);
      // No monitoring publisher to not interfer with some SocketTimeoutException
    // No monitoring publisher to not interfere with some SocketTimeoutException
      // expected at some points in these tests
      conf.setMonitoringPeriod(0L);
      ReplicationServer replicationServer = new ReplicationServer(conf);
      return replicationServer;
    }
  /**
   * Returns a Set<String> containing the URLs for the real Replication Servers
   * (RS for short) for the specified number of RSs. The Set is built by
   * excluding the URL for the currentPort. The returned Set size is nbRS - 1
   * (for the excluded port).
   *
   * @param excludedRsPort
   *          the RS port to exclude
   * @param totalNbRS
   *          the total number of real RSs that will be part of the topology.
   * @return a SortedSet<String> containing the RS URLs.
   */
  private SortedSet<String> generateReplicationServerUrls(int excludedRsPort,
      int totalNbRS)
  {
    SortedSet<String> replServers = new TreeSet<String>();
    if (totalNbRS >= 2)
    {
      addIfNotSame(replServers, rs1Port, excludedRsPort);
      addIfNotSame(replServers, rs2Port, excludedRsPort);
      if (totalNbRS >= 3)
      {
        addIfNotSame(replServers, rs3Port, excludedRsPort);
        if (totalNbRS >= 4)
        {
          addIfNotSame(replServers, rs4Port, excludedRsPort);
        }
      }
    }
    return replServers;
  }
  private void addIfNotSame(Set<String> replServers, int rsPort,
      int excludedRsPort)
  {
    if (rsPort != excludedRsPort)
    {
      replServers.add("localhost:" + rsPort);
    }
  }
  /**
@@ -800,7 +757,6 @@
     */
    public void sendNewFakeUpdate(boolean useAssured) throws TimeoutException
    {
      // Create a new delete update message (the simplest to create)
      DeleteMsg delMsg = new DeleteMsg(getServiceID(), gen.newChangeNumber(),
        UUID.randomUUID().toString());
@@ -1281,7 +1237,7 @@
      // Create real RS 1
      rs1 = createReplicationServer(RS1_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, 0);
      assertNotNull(rs1);
      /*
@@ -1628,7 +1584,7 @@
      // Create real RS 1
      rs1 = createReplicationServer(RS1_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, 0);
      assertNotNull(rs1);
      /*
@@ -2162,7 +2118,7 @@
      // Create real RS 1
      rs1 = createReplicationServer(RS1_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, 0);
      assertNotNull(rs1);
      /*
@@ -2261,24 +2217,24 @@
    try
    {
      /*
       * Start 3 real RSs
       */
      int numberOfRealRSs = 3;
      // Create real RS 1
      rs1 = createReplicationServer(RS1_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs1);
      // Create real RS 2
      rs2 = createReplicationServer(RS2_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs2);
      // Create real RS 3
      rs3 = createReplicationServer(RS3_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs3);
      /*
@@ -2347,7 +2303,7 @@
      // Create real RS 1
      rs1 = createReplicationServer(RS1_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, 0);
      assertNotNull(rs1);
      /*******************
@@ -2711,7 +2667,7 @@
      // Create real RS 1
      rs1 = createReplicationServer(RS1_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, 0);
      assertNotNull(rs1);
      /*
@@ -3039,25 +2995,26 @@
      /*
       * Start 4 real RSs
       */
      int numberOfRealRSs = 4;
      // Create real RS 1
      rs1 = createReplicationServer(RS1_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs1);
      // Create real RS 2
      rs2 = createReplicationServer(RS2_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs2);
      // Create real RS 3
      rs3 = createReplicationServer(RS3_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs3);
      // Create real RS 4 (different GID 2)
      rs4 = createReplicationServer(RS4_ID, OTHER_GID_BIS, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs4);
      /*
@@ -3392,15 +3349,16 @@
      /*
       * Start 2 real RSs
       */
      int numberOfRealRSs = 2;
      // Create real RS 1
      rs1 = createReplicationServer(RS1_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs1);
      // Create real RS 2
      rs2 = createReplicationServer(RS2_ID, OTHER_GID, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs2);
      /*
@@ -3536,15 +3494,16 @@
      /*
       * Start 2 real RSs
       */
      int numberOfRealRSs = 2;
      // Create real RS 1
      rs1 = createReplicationServer(RS1_ID, DEFAULT_GID, SMALL_TIMEOUT + 1000, // Be sure DS2 timeout is seen from DS1
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs1);
      // Create real RS 2
      rs2 = createReplicationServer(RS2_ID, DEFAULT_GID, SMALL_TIMEOUT,
        testCase);
        testCase, numberOfRealRSs);
      assertNotNull(rs2);
      /*