@Test
  public void testPRDAckCreationAndQueryingFull() throws Exception {
    // Creating PR's on the participating VM's
    vm0.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRCreate(PARTITIONED_REGION_NAME,
        REDUNDANCY, PORTFOLIO_CLASS));
    vm1.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRCreate(PARTITIONED_REGION_NAME,
        REDUNDANCY, PORTFOLIO_CLASS));
    vm2.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRCreate(PARTITIONED_REGION_NAME,
        REDUNDANCY, PORTFOLIO_CLASS));
    vm3.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRCreate(PARTITIONED_REGION_NAME,
        REDUNDANCY, PORTFOLIO_CLASS));

    // creating a local region on one of the JVM's
    vm0.invoke(prQueryDUnitHelper
        .getCacheSerializableRunnableForLocalRegionCreation(LOCAL_REGION_NAME, PORTFOLIO_CLASS));

    // Putting the data into the PR's created
    vm0.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRPuts(PARTITIONED_REGION_NAME,
        portfoliosAndPositions, 0, STEP_SIZE));
    vm1.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRPuts(PARTITIONED_REGION_NAME,
        portfoliosAndPositions, STEP_SIZE, (2 * STEP_SIZE)));
    vm2.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRPuts(PARTITIONED_REGION_NAME,
        portfoliosAndPositions, (2 * STEP_SIZE), (3 * STEP_SIZE)));
    vm3.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRPuts(PARTITIONED_REGION_NAME,
        portfoliosAndPositions, (3 * (STEP_SIZE)), TOTAL_DATA_SIZE));

    // Putting the same data in the local region created
    vm0.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRPuts(LOCAL_REGION_NAME,
        portfoliosAndPositions, START_KEY, TOTAL_DATA_SIZE));

    // querying the VM for data
    vm0.invoke(prQueryDUnitHelper.getCacheSerializableRunnableForPRQueryAndCompareResults(
        PARTITIONED_REGION_NAME, LOCAL_REGION_NAME, true));
  }
This test does the following using full queries with projections and drill-down <br>
1. Creates PR regions on 4 VMs (all datastores) with scope = D_ACK <br>
2. Creates a Local region on one of the VM's <br>
3. Puts in the same data both in PR region & the Local Region <br>
4. Queries the data both in local & PR <br>
5. Verifies the size ,type , contents of both the resultSets Obtained
geode-core/src/distributedTest/java/org/apache/geode/cache/query/partitioned/PRQueryPortfolioDUnitTest.java