test_class.declarator: sut
test_class.modifier: private
test_class.original_string: private HandlerDescriptionAnalyzer sut;
test_class.type: HandlerDescriptionAnalyzer
test_class.var_name: sut
test_class.declarator: typeScanner
test_class.modifier: private
test_class.original_string: private TypeScanner typeScanner;
test_class.type: TypeScanner
test_class.var_name: typeScanner
test_class.declarator: instanceCreator
test_class.modifier: private
test_class.original_string: private SagaInstanceCreator instanceCreator;
test_class.type: SagaInstanceCreator
test_class.var_name: instanceCreator
test_class.file: saga-lib/src/test/java/com/codebullets/sagalib/startup/HandlerDescriptionAnalyzerTest.java
test_class.identifier: HandlerDescriptionAnalyzerTest
test_case.body: @Test
      public void scanHandledMessageTypes_sagaWithHandler_returnsHandler() throws ExecutionException {
          // given
          mockSaga(String.class);
  
          // when
          Map<Class<? extends Saga>, SagaHandlersMap> classSagaHandlersMapMap = sut.scanHandledMessageTypes();
  
          // then
          assertThat("Expected saga type to be present.", classSagaHandlersMapMap.containsKey(TestSaga.class), is(true));
  
          Collection<MessageHandler> handlers = classSagaHandlersMapMap.get(TestSaga.class).messageHandlers();
          assertThat("Expected handlers map to contain handler type.", handlers.iterator().next().getMessageType(), equalTo(String.class));
          assertThat("Expected handlers map to to be starting type.", handlers.iterator().next().getStartsSaga(), is(true));
      }
test_case.class_method_signature: HandlerDescriptionAnalyzerTest.scanHandledMessageTypes_sagaWithHandler_returnsHandler()
test_case.full_signature: @Test public void scanHandledMessageTypes_sagaWithHandler_returnsHandler()
test_case.identifier: scanHandledMessageTypes_sagaWithHandler_returnsHandler
test_case.invocations: mockSaga scanHandledMessageTypes assertThat containsKey is messageHandlers get assertThat getMessageType next iterator equalTo assertThat getStartsSaga next iterator is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void scanHandledMessageTypes_sagaWithHandler_returnsHandler()
focal_class.declarator: LOG = LoggerFactory.getLogger(AnnotationSagaAnalyzer.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOG = LoggerFactory.getLogger(AnnotationSagaAnalyzer.class);
focal_class.type: Logger
focal_class.var_name: LOG
focal_class.declarator: typeScanner
focal_class.modifier: private final
focal_class.original_string: private final TypeScanner typeScanner;
focal_class.type: TypeScanner
focal_class.var_name: typeScanner
focal_class.declarator: instanceCreator
focal_class.modifier: private final
focal_class.original_string: private final SagaInstanceCreator instanceCreator;
focal_class.type: SagaInstanceCreator
focal_class.var_name: instanceCreator
focal_class.file: saga-lib/src/main/java/com/codebullets/sagalib/startup/HandlerDescriptionAnalyzer.java
focal_class.identifier: HandlerDescriptionAnalyzer
focal_class.interfaces: implements SagaAnalyzer
focal_class.class_method_signature: HandlerDescriptionAnalyzer.HandlerDescriptionAnalyzer(final TypeScanner typeScanner, final SagaInstanceCreator instanceCreator)
focal_class.full_signature: @Inject public  HandlerDescriptionAnalyzer(final TypeScanner typeScanner, final SagaInstanceCreator instanceCreator)
focal_class.identifier: HandlerDescriptionAnalyzer
focal_class.modifiers: @Inject public
focal_class.parameters: (final TypeScanner typeScanner, final SagaInstanceCreator instanceCreator)
focal_class.signature:  HandlerDescriptionAnalyzer(final TypeScanner typeScanner, final SagaInstanceCreator instanceCreator)
focal_class.class_method_signature: HandlerDescriptionAnalyzer.scanHandledMessageTypes()
focal_class.full_signature: @Override public Map<Class<? extends Saga>, SagaHandlersMap> scanHandledMessageTypes()
focal_class.identifier: scanHandledMessageTypes
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Map<Class<? extends Saga>, SagaHandlersMap>
focal_class.signature: Map<Class<? extends Saga>, SagaHandlersMap> scanHandledMessageTypes()
focal_class.class_method_signature: HandlerDescriptionAnalyzer.createHandlersMap(final Stream<DescribesHandlers> directDescriptionSagas)
focal_class.full_signature: private Map<Class<? extends Saga>, SagaHandlersMap> createHandlersMap(final Stream<DescribesHandlers> directDescriptionSagas)
focal_class.identifier: createHandlersMap
focal_class.modifiers: private
focal_class.parameters: (final Stream<DescribesHandlers> directDescriptionSagas)
focal_class.return: Map<Class<? extends Saga>, SagaHandlersMap>
focal_class.signature: Map<Class<? extends Saga>, SagaHandlersMap> createHandlersMap(final Stream<DescribesHandlers> directDescriptionSagas)
focal_class.class_method_signature: HandlerDescriptionAnalyzer.createDirectDescriptionInstance(final Class<? extends Saga> clazz)
focal_class.full_signature: private Stream<DescribesHandlers> createDirectDescriptionInstance(final Class<? extends Saga> clazz)
focal_class.identifier: createDirectDescriptionInstance
focal_class.modifiers: private
focal_class.parameters: (final Class<? extends Saga> clazz)
focal_class.return: Stream<DescribesHandlers>
focal_class.signature: Stream<DescribesHandlers> createDirectDescriptionInstance(final Class<? extends Saga> clazz)
focal_method.body: @Override
      public Map<Class<? extends Saga>, SagaHandlersMap> scanHandledMessageTypes() {
  
          Collection<Class<? extends Saga>> sagaClasses = typeScanner.scanForSagas();
          Stream<DescribesHandlers> directDescriptionSagas = sagaClasses.stream()
                  .filter(DescribesHandlers.class::isAssignableFrom)
                  .filter(c -> !Modifier.isAbstract(c.getModifiers()))
                  .flatMap(this::createDirectDescriptionInstance);
  
          return createHandlersMap(directDescriptionSagas);
      }
focal_method.class_method_signature: HandlerDescriptionAnalyzer.scanHandledMessageTypes()
focal_method.full_signature: @Override public Map<Class<? extends Saga>, SagaHandlersMap> scanHandledMessageTypes()
focal_method.identifier: scanHandledMessageTypes
focal_method.invocations: scanForSagas flatMap filter filter stream isAbstract getModifiers createHandlersMap
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: Map<Class<? extends Saga>, SagaHandlersMap>
focal_method.signature: Map<Class<? extends Saga>, SagaHandlersMap> scanHandledMessageTypes()