use of org.neo4j.index.internal.gbptree.ValueMerger in project neo4j by neo4j.
the class IdRangeMarkerTest method realMergerMock.
private static ValueMerger realMergerMock() {
ValueMerger merger = mock(ValueMerger.class);
when(merger.merge(any(), any(), any(), any())).thenAnswer(invocation -> IdRangeMerger.DEFAULT.merge(invocation.getArgument(0), invocation.getArgument(1), invocation.getArgument(2), invocation.getArgument(3)));
return merger;
}
use of org.neo4j.index.internal.gbptree.ValueMerger in project neo4j by neo4j.
the class IdRangeMarkerTest method shouldNotCreateEntryOnFirstRemoval.
@Test
void shouldNotCreateEntryOnFirstRemoval() throws IOException {
// when
ValueMerger merger = mock(ValueMerger.class);
try (IdRangeMarker marker = instantiateMarker(mock(Lock.class), merger)) {
marker.markUsed(0);
}
// then
verifyNoMoreInteractions(merger);
try (Seeker<IdRangeKey, IdRange> seek = tree.seek(new IdRangeKey(0), new IdRangeKey(Long.MAX_VALUE), NULL)) {
assertFalse(seek.next());
}
}
use of org.neo4j.index.internal.gbptree.ValueMerger in project neo4j by neo4j.
the class IdRangeMarkerTest method shouldMergeAdditionIntoExistingEntry.
@Test
void shouldMergeAdditionIntoExistingEntry() throws IOException {
// given
try (IdRangeMarker marker = instantiateMarker(mock(Lock.class), mock(ValueMerger.class))) {
marker.markDeleted(0);
}
// when
ValueMerger merger = realMergerMock();
try (IdRangeMarker marker = instantiateMarker(mock(Lock.class), merger)) {
marker.markDeleted(1);
}
// then
verify(merger).merge(any(), any(), any(), any());
try (Seeker<IdRangeKey, IdRange> seek = tree.seek(new IdRangeKey(0), new IdRangeKey(1), NULL)) {
assertTrue(seek.next());
assertEquals(0, seek.key().getIdRangeIdx());
assertEquals(IdRange.IdState.DELETED, seek.value().getState(0));
assertEquals(IdRange.IdState.DELETED, seek.value().getState(1));
assertEquals(IdRange.IdState.USED, seek.value().getState(2));
}
}
use of org.neo4j.index.internal.gbptree.ValueMerger in project neo4j by neo4j.
the class IdRangeMarkerTest method shouldCreateEntryOnFirstAddition.
@Test
void shouldCreateEntryOnFirstAddition() throws IOException {
// given
ValueMerger merger = mock(ValueMerger.class);
// when
try (IdRangeMarker marker = instantiateMarker(mock(Lock.class), merger)) {
marker.markDeleted(0);
}
// then
verifyNoMoreInteractions(merger);
try (Seeker<IdRangeKey, IdRange> seek = tree.seek(new IdRangeKey(0), new IdRangeKey(1), NULL)) {
assertTrue(seek.next());
assertEquals(0, seek.key().getIdRangeIdx());
}
}
Aggregations