@VisibleForTesting StreamProcessor createStreamProcessor(Config config, ApplicationDescriptorImpl<? extends ApplicationDescriptor> appDesc, StreamProcessor.StreamProcessorLifecycleListenerFactory listenerFactory, Optional<ExternalContext> externalContextOptional) { TaskFactory taskFactory = TaskFactoryUtil.getTaskFactory(appDesc); Map<String, MetricsReporter> reporters = new HashMap<>(); String processorId = createProcessorId(new ApplicationConfig(config)); appDesc.getMetricsReporterFactories().forEach((name, factory) -> reporters.put(name, factory.getMetricsReporter(name, processorId, config))); return new StreamProcessor(processorId, config, reporters, taskFactory, appDesc.getApplicationContainerContextFactory(), appDesc.getApplicationTaskContextFactory(), externalContextOptional, listenerFactory, null); }
@Test(expected = ConfigException.class) public void testCreateProcessorIdShouldThrowExceptionWhenProcessorIdAndGeneratorAreNotDefined() { ApplicationConfig mockConfig = Mockito.mock(ApplicationConfig.class); Mockito.when(mockConfig.getProcessorId()).thenReturn(null); LocalApplicationRunner.createProcessorId(mockConfig); }
@Test public void testCreateProcessorIdShouldInvokeProcessorIdGeneratorDefinedInConfiguration() { String processorId = "testProcessorId"; MapConfig configMap = new MapConfig(ImmutableMap.of(ApplicationConfig.APP_PROCESSOR_ID_GENERATOR_CLASS, MockProcessorIdGenerator.class.getCanonicalName())); String actualProcessorId = LocalApplicationRunner.createProcessorId(new ApplicationConfig(configMap)); assertEquals(processorId, actualProcessorId); }
@Test public void testCreateProcessorIdShouldReturnProcessorIdDefinedInConfiguration() { String processorId = "testProcessorId"; MapConfig configMap = new MapConfig(ImmutableMap.of(ApplicationConfig.PROCESSOR_ID, processorId)); String actualProcessorId = LocalApplicationRunner.createProcessorId(new ApplicationConfig(configMap)); assertEquals(processorId, actualProcessorId); }