private void verifyClusterManagementOperationRequestAndResponse(
      RestoreRedundancyRequest restoreRedundancyRequest, ClusterManagementService startClient,
      ClusterManagementService readResultClient)
      throws InterruptedException, ExecutionException {
    ClusterManagementOperationResult<RestoreRedundancyRequest, RestoreRedundancyResults> startResult =
        startClient.start(restoreRedundancyRequest);

    assertThat(startResult.isSuccessful()).isTrue();

    ClusterManagementOperationResult<RestoreRedundancyRequest, RestoreRedundancyResults> endResult =
        readResultClient.getFuture(restoreRedundancyRequest, startResult.getOperationId()).get();
    RestoreRedundancyResults restoreRedundancyResult = endResult.getOperationResult();

    assertThat(restoreRedundancyResult.getSuccess()).isTrue();

    boolean found;
    for (String regionName : restoreRedundancyRequest.getIncludeRegions()) {
      found = false;
      for (Map.Entry<String, RegionRedundancyStatus> region : restoreRedundancyResult
          .getSatisfiedRedundancyRegionResults().entrySet()) {
        if (region.getValue().getRegionName().compareTo(regionName) == 0) {
          found = true;
          break;
        }
      }
      assertThat(found)
          .describedAs("Satisfied Redundancy List contains region name is true for included")
          .isTrue();
    }

    for (String regionName : restoreRedundancyRequest.getIncludeRegions()) {
      for (Map.Entry<String, RegionRedundancyStatus> region : restoreRedundancyResult
          .getUnderRedundancyRegionResults().entrySet()) {
        assertThat(regionName)
            .describedAs("One of regions we expect to be satisfied is marked as Under Redundancy")
            .isNotEqualTo(region.getValue().getRegionName());
      }
    }

    for (String regionName : restoreRedundancyRequest.getIncludeRegions()) {
      for (Map.Entry<String, RegionRedundancyStatus> region : restoreRedundancyResult
          .getZeroRedundancyRegionResults().entrySet()) {
        assertThat(regionName)
            .describedAs("One of regions we expect to be satisfied is marked as Zero Redundancy")
            .isNotEqualTo(region.getValue().getRegionName());
      }
    }

    List<String> filteredExclude;

    if (restoreRedundancyRequest.getExcludeRegions() != null) {
      filteredExclude = new ArrayList<>(restoreRedundancyRequest.getExcludeRegions());
    } else {
      filteredExclude = new ArrayList<>();
    }

    for (String regionName : restoreRedundancyRequest.getIncludeRegions()) {
      filteredExclude.remove(regionName);
    }

    // Testing for the absence of the region name...
    for (String regionName : filteredExclude) {
      found = false;
      for (Map.Entry<String, RegionRedundancyStatus> region : restoreRedundancyResult
          .getSatisfiedRedundancyRegionResults().entrySet()) {
        if (region.getValue().getRegionName().compareTo(regionName) == 0) {
          found = true;
          break;
        }
      }
      assertThat(found)
          .describedAs("Satisfied Redundancy List contains region name is false for excluded")
          .isFalse();
    }
  }
This class borrows very heavily from the RestoreRedundancyCommandDUnitTest
geode-assembly/src/distributedTest/java/org/apache/geode/management/internal/rest/RestoreRedundancyManagementDUnitTest.java