private void validateColocatedData(int count) {
    PartitionedRegion customers = (PartitionedRegion) getCache().getRegion(CUSTOMERS_REGION);
    PartitionedRegion orders = (PartitionedRegion) getCache().getRegion(ORDERS_REGION);
    PartitionedRegion shipments = (PartitionedRegion) getCache().getRegion(SHIPMENTS_REGION);

    for (int i = 0; i < requirePositive(count); i++) {
      InternalDistributedMember idmForCustomer = customers.getBucketPrimary(i);
      InternalDistributedMember idmForOrder = orders.getBucketPrimary(i);
      InternalDistributedMember idmForShipment = shipments.getBucketPrimary(i);

      // take all the keys from the shipment for each bucket
      Set<CustomerId> customerKey = uncheckedCast(customers.getBucketKeys(i));
      assertThat(customerKey).isNotNull();

      for (CustomerId customerId : customerKey) {
        assertThat(customers.get(customerId)).isNotNull();

        Set<OrderId> orderKey = uncheckedCast(orders.getBucketKeys(i));
        for (OrderId orderId : orderKey) {
          assertThat(orders.get(orderId)).isNotNull();
          if (orderId.getCustomerId().equals(customerId)) {
            assertThat(idmForOrder).isEqualTo(idmForCustomer);
          }

          Set<ShipmentId> shipmentKey = uncheckedCast(shipments.getBucketKeys(i));
          for (ShipmentId shipmentId : shipmentKey) {
            assertThat(shipments.get(shipmentId)).isNotNull();
            if (shipmentId.getOrderId().equals(orderId)) {
              assertThat(idmForShipment).isEqualTo(idmForOrder);
            }
          }
        }
      }
    }
  }
Test validate a normal PR's persistence behavior. normal PR region is created on vm0 and
vm1. Put is done on this PR Member1 and Member2's cache is closed respectively. Member2 is
brought back and persisted data is verified.
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/partitioned/fixed/FixedPartitioningWithColocationAndPersistenceDUnitTest.java