@Test
  public void testGet() throws IOException {
    KijiDataRequestBuilder builder = KijiDataRequest.builder();
    builder
        .addColumns()
        .withMaxVersions(5)
        .withPageSize(2)
        .add("info", "name")
        .add("info", "location");
    builder.addColumns().withPageSize(2).addFamily("jobs");
    KijiDataRequest dataRequest = builder.build();
    KijiRowData input = mTableReader.get(mGarrettId, dataRequest);

    // Read the user name.
    if (!input.containsColumn("info", "name")) {
      return;
    }
    CharSequence name = input.getMostRecentValue("info", "name");

    // Page over location column.
    List<CharSequence> locations = new ArrayList<CharSequence>();
    KijiPager locationPager = input.getPager("info", "location");
    assertTrue("Our pager always has a first page.", locationPager.hasNext());
    for (CharSequence location :
        locationPager.next().<CharSequence>getValues("info", "location").values()) {
      locations.add(location);
    }
    LOG.debug("This size of our locations list is [{}].", locations.size());
    assertEquals(2, locations.size());

    // Read the second page of locations (2 cells).
    assertTrue("Our pager should have a second page.", locationPager.hasNext());
    for (CharSequence location :
        locationPager.next().<CharSequence>getValues("info", "location").values()) {
      locations.add(location);
    }
    LOG.debug("This size of our locations list is [{}].", locations.size());
    assertEquals(4, locations.size());

    // Read the last page of locations (1 cell).
    assertTrue("Our pager should have a third page", locationPager.hasNext());
    for (CharSequence location :
        locationPager.next().<CharSequence>getValues("info", "location").values()) {
      locations.add(location);
    }
    LOG.debug("This size of our locations list is [{}].", locations.size());
    assertEquals(5, locations.size());

    assertFalse("Our page should not have a fifth page.", locationPager.hasNext());

    // Page over jobs column.
    KijiPager jobsPager = input.getPager("jobs");
    assertTrue("Our pagers always have a first page.", jobsPager.hasNext());
    List<CharSequence> jobs = new ArrayList<CharSequence>();
    for (Map.Entry<String, CharSequence> employment :
        jobsPager.next().<CharSequence>getMostRecentValues("jobs").entrySet()) {
      jobs.add(employment.getValue().toString() + " @ " + employment.getKey());
    }
    assertEquals(2, jobs.size());

    // Read the second page of jobs.
    assertTrue(jobsPager.hasNext());
    for (Map.Entry<String, CharSequence> employment :
        jobsPager.next().<CharSequence>getMostRecentValues("jobs").entrySet()) {
      jobs.add(employment.getValue().toString() + " @ " + employment.getKey());
    }
    assertEquals(4, jobs.size());
    // We should try to get the next page
    assertTrue(jobsPager.hasNext());
    // But it should be empty.
    assertTrue(jobsPager.next().getValues("jobs").isEmpty());
  }