use of io.confluent.ksql.physical.scalablepush.consumer.LatestConsumer.LatestConsumerFactory in project ksql by confluentinc.
the class ScalablePushRegistryTest method setUp.
@Before
public void setUp() {
when(ksqlTopic.getKafkaTopicName()).thenReturn(TOPIC);
when(kafkaConsumerFactory.create(any(), any(), any(), any(), any(), any())).thenReturn(kafkaConsumer);
catchupCoordinator = new TestCatchupCoordinator();
latestConsumer = new TestLatestConsumer(TOPIC, false, SCHEMA, kafkaConsumer, catchupCoordinator, assignment -> {
}, ksqlConfig, Clock.systemUTC());
latestConsumer2 = new TestLatestConsumer(TOPIC, false, SCHEMA, kafkaConsumer, catchupCoordinator, assignment -> {
}, ksqlConfig, Clock.systemUTC());
catchupConsumer = new TestCatchupConsumer(TOPIC, false, SCHEMA, kafkaConsumer, () -> latestConsumer, catchupCoordinator, pushOffsetRange, Clock.systemUTC(), pq -> {
});
when(latestConsumerFactory.create(any(), anyBoolean(), any(), any(), any(), any(), any(), any())).thenReturn(latestConsumer, latestConsumer2);
when(catchupConsumerFactory.create(any(), anyBoolean(), any(), any(), any(), any(), any(), any(), anyLong(), any())).thenReturn(catchupConsumer);
when(ksqlTopic.getKeyFormat()).thenReturn(keyFormat);
when(keyFormat.isWindowed()).thenReturn(false);
realExecutorService = Executors.newFixedThreadPool(2);
doAnswer(a -> {
final Runnable runnable = a.getArgument(0);
startLatestRunnable.set(runnable);
realExecutorService.submit(runnable);
return null;
}).when(executorService).submit(any(Runnable.class));
doAnswer(a -> {
final Runnable runnable = a.getArgument(0);
realExecutorService.submit(runnable);
return null;
}).when(catchupService).submit(any(Runnable.class));
when(processingQueue.getQueryId()).thenReturn(new QueryId("q1"));
when(processingQueue2.getQueryId()).thenReturn(new QueryId("q2"));
registry = new ScalablePushRegistry(locator, SCHEMA, false, ImmutableMap.of(), ksqlTopic, serviceContext, ksqlConfig, SOURCE_APP_ID, kafkaConsumerFactory, latestConsumerFactory, catchupConsumerFactory, executorService, catchupService);
when(ksqlConfig.getInt(KsqlConfig.KSQL_QUERY_PUSH_V2_MAX_CATCHUP_CONSUMERS)).thenReturn(10);
}
Aggregations