use of com.hazelcast.ringbuffer.ReadResultSet in project hazelcast by hazelcast.
the class RingbufferTest method readManyAsync_noFilter.
@Test
public void readManyAsync_noFilter() throws Exception {
serverRingbuffer.add("1");
serverRingbuffer.add("2");
serverRingbuffer.add("3");
Future<ReadResultSet<String>> f = clientRingbuffer.readManyAsync(0, 3, 3, null).toCompletableFuture();
ReadResultSet rs = f.get();
assertInstanceOf(ReadResultSetImpl.class, rs);
assertEquals(3, rs.readCount());
assertEquals("1", rs.get(0));
assertEquals("2", rs.get(1));
assertEquals("3", rs.get(2));
}
use of com.hazelcast.ringbuffer.ReadResultSet in project hazelcast by hazelcast.
the class RingbufferTest method readManyAsync_withFilter.
@Test
public void readManyAsync_withFilter() throws Exception {
serverRingbuffer.add("good1");
serverRingbuffer.add("bad1");
serverRingbuffer.add("good2");
serverRingbuffer.add("bad2");
serverRingbuffer.add("good3");
serverRingbuffer.add("bad3");
Future<ReadResultSet<String>> f = clientRingbuffer.readManyAsync(0, 3, 3, new StartsWithStringFilter("good")).toCompletableFuture();
ReadResultSet rs = f.get();
assertInstanceOf(ReadResultSetImpl.class, rs);
assertEquals(5, rs.readCount());
assertEquals("good1", rs.get(0));
assertEquals("good2", rs.get(1));
assertEquals("good3", rs.get(2));
}
use of com.hazelcast.ringbuffer.ReadResultSet in project hazelcast by hazelcast.
the class RingbufferTest method readManyAsync_withFilter_andMaxCount.
// checks if the max count works in combination with a filter.
// So if more results are available than needed, the surplus results should not be read.
@Test
public void readManyAsync_withFilter_andMaxCount() throws Exception {
serverRingbuffer.add("good1");
serverRingbuffer.add("bad1");
serverRingbuffer.add("good2");
serverRingbuffer.add("bad2");
serverRingbuffer.add("good3");
serverRingbuffer.add("bad3");
serverRingbuffer.add("good4");
serverRingbuffer.add("bad4");
Future<ReadResultSet<String>> f = clientRingbuffer.readManyAsync(0, 3, 3, new StartsWithStringFilter("good")).toCompletableFuture();
ReadResultSet rs = f.get();
assertInstanceOf(ReadResultSetImpl.class, rs);
assertEquals(5, rs.readCount());
assertEquals("good1", rs.get(0));
assertEquals("good2", rs.get(1));
assertEquals("good3", rs.get(2));
}
use of com.hazelcast.ringbuffer.ReadResultSet in project hazelcast by hazelcast.
the class RingbufferAbstractTest method readManyAsync_whenHitsStale_useHeadAsStartSequence.
@Test
public void readManyAsync_whenHitsStale_useHeadAsStartSequence() throws Exception {
ringbuffer.addAllAsync(asList("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"), OVERWRITE);
Future<ReadResultSet<String>> f = ringbuffer.readManyAsync(1, 1, 10, null).toCompletableFuture();
ReadResultSet rs = f.get();
assertEquals(10, rs.readCount());
assertEquals("1", rs.get(0));
assertEquals("10", rs.get(9));
}
use of com.hazelcast.ringbuffer.ReadResultSet in project hazelcast by hazelcast.
the class AbstractEventJournalBasicTest method allowReadingWithFutureSeq.
@Test
public void allowReadingWithFutureSeq() throws Exception {
final EventJournalTestContext<String, Integer, EJ_TYPE> context = createContext();
final EventJournalInitialSubscriberState state = subscribeToEventJournal(context.dataAdapter, partitionId);
assertEquals(0, state.getOldestSequence());
assertEquals(-1, state.getNewestSequence());
assertEventJournalSize(context.dataAdapter, 0);
final Integer value = RANDOM.nextInt();
final CountDownLatch latch = new CountDownLatch(1);
final int startSequence = 1;
final BiConsumer<ReadResultSet<EJ_TYPE>, Throwable> callback = (response, t) -> {
if (t == null) {
latch.countDown();
assertEquals(1, response.size());
final EventJournalEventAdapter<String, Integer, EJ_TYPE> journalAdapter = context.eventJournalAdapter;
final EJ_TYPE e = response.get(0);
assertEquals(ADDED, journalAdapter.getType(e));
assertEquals(value, journalAdapter.getNewValue(e));
} else {
rethrow(t);
}
};
CompletionStage<ReadResultSet<EJ_TYPE>> callbackStage = readFromEventJournal(context.dataAdapter, startSequence, 1, partitionId, TRUE_PREDICATE, IDENTITY_FUNCTION).whenCompleteAsync(callback);
assertTrueEventually(() -> {
context.dataAdapter.put(randomPartitionKey(), value);
assertTrue(latch.await(200, TimeUnit.MILLISECONDS));
}, 30);
// ensure no exception thrown from callback
callbackStage.toCompletableFuture().join();
}
Aggregations