public void testResumeTraversal() throws RepositoryException {
    MockRepositoryEventList mrel = new MockRepositoryEventList("MockRepositoryEventLog1.txt");
    MockRepository r = new MockRepository(mrel);
    QueryManager qm = new MockJcrQueryManager(r.getStore());
    TraversalManager qtm = new JcrTraversalManager(qm);

    {
      MockRepositoryDocument mockDoc = r.getStore().getDocByID("doc2");
      Document doc = new JcrDocument(new MockJcrNode(mockDoc));
      String checkpointString = JcrDocumentList.checkpoint(doc);
      DocumentList documentList = qtm.resumeTraversal(checkpointString);
      int counter = countDocuments(documentList);
      Assert.assertEquals(2, counter);
    }

    {
      MockRepositoryDocument mockDoc = r.getStore().getDocByID("doc4");
      Document doc = new JcrDocument(new MockJcrNode(mockDoc));
      String checkpointString = JcrDocumentList.checkpoint(doc);
      DocumentList documentList = qtm.resumeTraversal(checkpointString);
      int counter = countDocuments(documentList);
      Assert.assertEquals(0, counter);
    }
  }
  /**
   * Test generating checkpoints.
   *
   * @throws RepositoryException
   * @throws JSONException
   */
  public void testCheckpoint() throws RepositoryException, JSONException {
    // We're comparing date strings here, so we need a fixed time zone.
    Value.setFeedTimeZone("GMT");

    MockRepositoryEventList mrel = new MockRepositoryEventList("MockRepositoryEventLog1.txt");
    MockRepository r = new MockRepository(mrel);
    MockRepositoryDocument mockDoc = r.getStore().getDocByID("doc1");
    Document doc = new JcrDocument(new MockJcrNode(mockDoc));
    String checkpointString = JcrDocumentList.checkpoint(doc);
    logger.info(checkpointString);

    JSONObject jo = new JSONObject(checkpointString);

    String lastModified = jo.getString("lastModified");
    Assert.assertEquals("1970-01-01T00:00:10.000Z", lastModified);
    String uuid = jo.getString("uuid");
    Assert.assertEquals("doc1", uuid);
  }