@Test public void shouldRenewLeaseAtEachTraversal() { Response response = createAPagedTraverser(); String traverserId = parseTraverserIdFromLocationUri(response); ((FakeClock) leaseManager.getClock()).forward(30, TimeUnit.SECONDS); response = service.pagedTraverse(traverserId, TraverserReturnType.node); assertEquals(200, response.getStatus()); ((FakeClock) leaseManager.getClock()).forward(30, TimeUnit.SECONDS); response = service.pagedTraverse(traverserId, TraverserReturnType.node); assertEquals(200, response.getStatus()); ((FakeClock) leaseManager.getClock()) .forward(enoughMinutesToExpireTheLease(), TimeUnit.MINUTES); response = service.pagedTraverse(traverserId, TraverserReturnType.node); assertEquals(404, response.getStatus()); }
@Test public void shouldRespondWith404WhenTraversalHasExpired() { Response response = createAPagedTraverser(); ((FakeClock) leaseManager.getClock()).forward(2, TimeUnit.MINUTES); String traverserId = parseTraverserIdFromLocationUri(response); response = service.pagedTraverse(traverserId, TraverserReturnType.node); assertEquals(404, response.getStatus()); }
@Test public void givenAPageTraversalHasBeenCreatedShouldYieldNextPageAndRespondWith200() throws Exception { Response response = createAPagedTraverser(); String traverserId = parseTraverserIdFromLocationUri(response); response = service.pagedTraverse(traverserId, TraverserReturnType.node); assertEquals(200, response.getStatus()); assertNotNull(response.getEntity()); assertThat(new String((byte[]) response.getEntity()), not(containsString("\"name\" : \"19\""))); assertThat(new String((byte[]) response.getEntity()), containsString("\"name\" : \"91\"")); }
private Response createAPagedTraverser() { long startNodeId = createListOfNodes(1000); String description = "{" + "\"prune_evaluator\":{\"language\":\"builtin\",\"name\":\"none\"}," + "\"return_filter\":{\"language\":\"javascript\",\"body\":\"position.endNode().getProperty('name')" + ".contains('9');\"}," + "\"order\":\"depth first\"," + "\"relationships\":{\"type\":\"PRECEDES\",\"direction\":\"out\"}" + "}"; final int SIXTY_SECONDS = 60; final int PAGE_SIZE = 10; return service.createPagedTraverser( startNodeId, TraverserReturnType.node, PAGE_SIZE, SIXTY_SECONDS, description); }
@Test public void shouldRespondWith404WhenNoSuchTraversalRegistered() { Response response = service.pagedTraverse("anUnlikelyTraverserId", TraverserReturnType.node); assertEquals(404, response.getStatus()); }