@Test
  public void testBucketsScope() throws Exception {
    // Create PRs on only 2 VMs
    vm0.invoke(() -> createPRs(PR_ZERO_REDUNDANCY, PR_ONE_REDUNDANCY));
    vm1.invoke(() -> createPRs(PR_ZERO_REDUNDANCY, PR_ONE_REDUNDANCY));

    // Do put operations on these 2 PRs asynchronously (test does not currently do this)

    vm0.invoke(() -> {
      Cache cache = getCache();
      Region<Integer, Integer> regionZeroRedundancy = cache.getRegion(PR_ZERO_REDUNDANCY);
      for (int k = 0; k < 10; k++) {
        regionZeroRedundancy.put(k, k);
      }

      Region<Integer, Integer> regionOneRedundancy = cache.getRegion(PR_ONE_REDUNDANCY);
      for (int k = 0; k < 10; k++) {
        regionOneRedundancy.put(k, k);
      }
    });

    vm0.invoke(() -> validateBucketScope(PR_ZERO_REDUNDANCY, PR_ONE_REDUNDANCY));
    vm1.invoke(() -> validateBucketScope(PR_ZERO_REDUNDANCY, PR_ONE_REDUNDANCY));
  }
This verifies the Bucket Regions on the basis of redundantCopies set in RegionAttributes.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/PartitionedRegionHADUnitTest.java