Class ConstructorInjection


  • public class ConstructorInjection
    extends MockInjectionStrategy
    Injection strategy based on constructor.

    The strategy will search for the constructor with most parameters and try to resolve mocks by type.

    TODO on missing mock type, shall it abandon or create "noname" mocks. TODO and what if the arg type is not mockable.

    For now the algorithm tries to create anonymous mocks if an argument type is missing. If not possible the algorithm abandon resolution.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      (package private) static class  ConstructorInjection.SimpleArgumentResolver
      Returns mocks that match the argument type, if not possible assigns null.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean processInjection​(java.lang.reflect.Field field, java.lang.Object fieldOwner, java.util.Set<java.lang.Object> mockCandidates)
      Process actual injection.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ConstructorInjection

        public ConstructorInjection()
    • Method Detail

      • processInjection

        public boolean processInjection​(java.lang.reflect.Field field,
                                        java.lang.Object fieldOwner,
                                        java.util.Set<java.lang.Object> mockCandidates)
        Description copied from class: MockInjectionStrategy
        Process actual injection.

        Don't call this method directly, instead call MockInjectionStrategy.process(Field, Object, Set)

        Specified by:
        processInjection in class MockInjectionStrategy
        Parameters:
        field - Field needing injection
        fieldOwner - Field owner instance.
        mockCandidates - Pool of mocks to inject.
        Returns:
        true if injection occurred, false otherwise