@Test
  @Parameters({"1,2", "1,4", "4,1", "5,6"})
  public void testEnforceZoneWithSixServersAndTwoZones(int rebalanceServer,
      int serverToBeShutdownAndRestarted) throws Exception {
    SERVER_ZONE_MAP = new HashMap<>();
    SERVER_ZONE_MAP.put(1, ZONE_A);
    SERVER_ZONE_MAP.put(2, ZONE_A);
    SERVER_ZONE_MAP.put(3, ZONE_A);
    SERVER_ZONE_MAP.put(4, ZONE_B);
    SERVER_ZONE_MAP.put(5, ZONE_B);
    SERVER_ZONE_MAP.put(6, ZONE_B);

    cleanOutServerDirectories();

    // Startup the servers
    for (Map.Entry<Integer, String> entry : SERVER_ZONE_MAP.entrySet()) {
      startServerInRedundancyZone(entry.getKey(), entry.getValue());
    }

    // Put data in the server regions
    clientPopulateServers();

    // Rebalance Server VM will initiate the rebalances in this test
    VM rebalanceServerVM = clusterStartupRule.getVM(rebalanceServer);

    // Baseline rebalance with everything up
    rebalanceServerVM.invoke(() -> doRebalance(ClusterStartupRule.getCache().getResourceManager()));

    // Take the serverToBeShutdownAndRestarted offline
    clusterStartupRule.stop(serverToBeShutdownAndRestarted, false);

    // Rebalance so that now all the buckets are on the other two servers.
    // Zone b servers should not be touched.
    rebalanceServerVM.invoke(() -> doRebalance(ClusterStartupRule.getCache().getResourceManager()));

    // Restart the serverToBeShutdownAndRestarted
    startServerInRedundancyZone(serverToBeShutdownAndRestarted,
        SERVER_ZONE_MAP.get(serverToBeShutdownAndRestarted));

    // Do another rebalance to make sure all the buckets are distributed evenly(ish) and there are
    // no cross redundancy zone bucket deletions.
    rebalanceServerVM.invoke(() -> doRebalance(ClusterStartupRule.getCache().getResourceManager()));

    // Verify that all bucket counts add up to what they should
    compareZoneBucketCounts(COLOCATED_REGION_NAME);
    compareZoneBucketCounts(REGION_NAME);
  }
Test that we correctly use the redundancy-zone property to determine where to place redundant
copies of a buckets and doesn't allow cross redundancy zone deletes.

@param rebalanceServer - the server index that will initiate all the rebalances
@param serverToBeShutdownAndRestarted - the server index that will be shutdown and restarted
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/control/RebalanceOperationComplexDistributedTest.java