use of org.neo4j.cursor.Cursor in project neo4j by neo4j.
the class NodeLoadingIteratorTest method shouldHandleANonEmptyIteratorWithNotFoundEntities.
@Test
public void shouldHandleANonEmptyIteratorWithNotFoundEntities() throws Exception {
// given
Map<Long, Cursor<NodeItem>> map = new HashMap<>(3);
map.put(1L, mockCursor());
map.put(2L, null);
map.put(3L, mockCursor());
PrimitiveLongIterator inner = PrimitiveLongCollections.iterator(1, 2, 3);
NodeLoadingIterator iterator = new NodeLoadingIterator(inner, createMapping(map));
// when - then
for (long i = 1; i <= 2; i++) {
assertTrue(iterator.hasNext());
assertEquals(map.get(i + (i - 1)), iterator.next());
}
assertNoMoreElements(iterator);
}
use of org.neo4j.cursor.Cursor in project neo4j by neo4j.
the class NodeLoadingIteratorTest method shouldHandleANonEmptyIterator.
@Test
public void shouldHandleANonEmptyIterator() throws Exception {
// given
Map<Long, Cursor<NodeItem>> map = new HashMap<>(3);
map.put(1L, mockCursor());
map.put(2L, mockCursor());
map.put(3L, mockCursor());
PrimitiveLongIterator inner = PrimitiveLongCollections.iterator(1, 2, 3);
NodeLoadingIterator iterator = new NodeLoadingIterator(inner, createMapping(map));
// when - then
for (long i = 1; i <= 3; i++) {
assertTrue(iterator.hasNext());
assertEquals(map.get(i), iterator.next());
}
assertNoMoreElements(iterator);
}
use of org.neo4j.cursor.Cursor in project neo4j by neo4j.
the class TwoPhaseNodeForRelationshipLockingTest method returnRelationships.
static void returnRelationships(EntityReadOperations ops, KernelStatement state, long nodeId, final boolean skipFirst, final RelationshipData... relIds) throws EntityNotFoundException {
NodeItem nodeItem = mock(NodeItem.class);
when(ops.nodeGetRelationships(state, nodeItem, Direction.BOTH)).thenAnswer(new Answer<Cursor<RelationshipItem>>() {
private boolean first = skipFirst;
@Override
public Cursor<RelationshipItem> answer(InvocationOnMock invocation) throws Throwable {
try {
return new Cursor<RelationshipItem>() {
private int i = first ? 1 : 0;
private RelationshipData relationshipData = null;
@Override
public boolean next() {
boolean next = i < relIds.length;
relationshipData = next ? relIds[i++] : null;
return next;
}
@Override
public RelationshipItem get() {
if (relationshipData == null) {
throw new NoSuchElementException();
}
return relationshipData.asRelationshipItem();
}
@Override
public void close() {
}
};
} finally {
first = false;
}
}
});
when(ops.nodeCursorById(state, nodeId)).thenAnswer(invocationOnMock -> {
Cursor<NodeItem> cursor = new Cursor<NodeItem>() {
private int i = 0;
@Override
public boolean next() {
return i++ == 0;
}
@Override
public NodeItem get() {
if (i != 1) {
throw new NoSuchElementException();
}
return nodeItem;
}
@Override
public void close() {
}
};
if (!cursor.next()) {
throw new EntityNotFoundException(EntityType.NODE, nodeId);
}
return cursor;
});
}
Aggregations