test_class.declarator: userAuthServiceMock
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private UserAuthService userAuthServiceMock;
test_class.type: UserAuthService
test_class.var_name: userAuthServiceMock
test_class.declarator: projectionFactoryMock
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private ProjectionFactory projectionFactoryMock;
test_class.type: ProjectionFactory
test_class.var_name: projectionFactoryMock
test_class.declarator: userMock
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private User userMock;
test_class.type: User
test_class.var_name: userMock
test_class.declarator: baseProjectionFactory
test_class.modifier: private
test_class.original_string: private BaseProjectionFactory baseProjectionFactory;
test_class.type: BaseProjectionFactory
test_class.var_name: baseProjectionFactory
test_class.file: backend/project-board/src/test/java/de/adesso/projectboard/base/projection/BaseProjectionFactoryTest.java
test_class.identifier: BaseProjectionFactoryTest
test_case.body: @Test
      public void getProjectionTypeReturnsManagerTypeWhenUserIsAManager() {
          // given
          var normalProjection = Integer.class;
          var managerProjection = String.class;
  
          given(userAuthServiceMock.getAuthenticatedUser()).willReturn(userMock);
          given(userAuthServiceMock.userIsEffectivelyAManager(userMock)).willReturn(true);
  
          // when
          var actualProjection = baseProjectionFactory.getProjectionType(normalProjection, managerProjection);
  
          // then
          assertThat(actualProjection).isEqualTo(managerProjection);
      }
test_case.class_method_signature: BaseProjectionFactoryTest.getProjectionTypeReturnsManagerTypeWhenUserIsAManager()
test_case.full_signature: @Test public void getProjectionTypeReturnsManagerTypeWhenUserIsAManager()
test_case.identifier: getProjectionTypeReturnsManagerTypeWhenUserIsAManager
test_case.invocations: willReturn given getAuthenticatedUser willReturn given userIsEffectivelyAManager getProjectionType isEqualTo assertThat
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void getProjectionTypeReturnsManagerTypeWhenUserIsAManager()
focal_class.declarator: projectionFactory
focal_class.modifier: private final
focal_class.original_string: private final ProjectionFactory projectionFactory;
focal_class.type: ProjectionFactory
focal_class.var_name: projectionFactory
focal_class.declarator: userAuthService
focal_class.modifier: private final
focal_class.original_string: private final UserAuthService userAuthService;
focal_class.type: UserAuthService
focal_class.var_name: userAuthService
focal_class.file: backend/project-board/src/main/java/de/adesso/projectboard/base/projection/BaseProjectionFactory.java
focal_class.identifier: BaseProjectionFactory
focal_class.class_method_signature: BaseProjectionFactory.BaseProjectionFactory(ProjectionFactory projectionFactory, UserAuthService userAuthService)
focal_class.full_signature: @Autowired public  BaseProjectionFactory(ProjectionFactory projectionFactory, UserAuthService userAuthService)
focal_class.identifier: BaseProjectionFactory
focal_class.modifiers: @Autowired public
focal_class.parameters: (ProjectionFactory projectionFactory, UserAuthService userAuthService)
focal_class.signature:  BaseProjectionFactory(ProjectionFactory projectionFactory, UserAuthService userAuthService)
focal_class.class_method_signature: BaseProjectionFactory.createProjection(@NotNull Object object, @NotNull Class<T> projectionType)
focal_class.full_signature: public T createProjection(@NotNull Object object, @NotNull Class<T> projectionType)
focal_class.identifier: createProjection
focal_class.modifiers: public
focal_class.parameters: (@NotNull Object object, @NotNull Class<T> projectionType)
focal_class.return: T
focal_class.signature: T createProjection(@NotNull Object object, @NotNull Class<T> projectionType)
focal_class.class_method_signature: BaseProjectionFactory.createProjections(@NotNull Collection<?> objects, @NotNull Class<T> projectionType)
focal_class.full_signature: public List<T> createProjections(@NotNull Collection<?> objects, @NotNull Class<T> projectionType)
focal_class.identifier: createProjections
focal_class.modifiers: public
focal_class.parameters: (@NotNull Collection<?> objects, @NotNull Class<T> projectionType)
focal_class.return: List<T>
focal_class.signature: List<T> createProjections(@NotNull Collection<?> objects, @NotNull Class<T> projectionType)
focal_class.class_method_signature: BaseProjectionFactory.createProjectionForAuthenticatedUser(@NotNull Object object, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.full_signature: public Object createProjectionForAuthenticatedUser(@NotNull Object object, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.identifier: createProjectionForAuthenticatedUser
focal_class.modifiers: public
focal_class.parameters: (@NotNull Object object, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.return: Object
focal_class.signature: Object createProjectionForAuthenticatedUser(@NotNull Object object, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.class_method_signature: BaseProjectionFactory.createProjectionsForAuthenticatedUser(@NotNull Collection<?> objects, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.full_signature: public List<?> createProjectionsForAuthenticatedUser(@NotNull Collection<?> objects, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.identifier: createProjectionsForAuthenticatedUser
focal_class.modifiers: public
focal_class.parameters: (@NotNull Collection<?> objects, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.return: List<?>
focal_class.signature: List<?> createProjectionsForAuthenticatedUser(@NotNull Collection<?> objects, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.class_method_signature: BaseProjectionFactory.createProjectionsForAuthenticatedUser(@NotNull Page<?> page, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.full_signature: public Page<?> createProjectionsForAuthenticatedUser(@NotNull Page<?> page, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.identifier: createProjectionsForAuthenticatedUser
focal_class.modifiers: public
focal_class.parameters: (@NotNull Page<?> page, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.return: Page<?>
focal_class.signature: Page<?> createProjectionsForAuthenticatedUser(@NotNull Page<?> page, @NotNull Class<?> normalProjectionType, @NotNull Class<?> managerProjectionType)
focal_class.class_method_signature: BaseProjectionFactory.getProjectionType(Class<?> normalProjectionType, Class<?> managerProjectionType)
focal_class.full_signature:  Class<?> getProjectionType(Class<?> normalProjectionType, Class<?> managerProjectionType)
focal_class.identifier: getProjectionType
focal_class.parameters: (Class<?> normalProjectionType, Class<?> managerProjectionType)
focal_class.return: Class<?>
focal_class.signature: Class<?> getProjectionType(Class<?> normalProjectionType, Class<?> managerProjectionType)
focal_method.body: Class<?> getProjectionType(Class<?> normalProjectionType, Class<?> managerProjectionType) {
          var authenticatedUser = userAuthService.getAuthenticatedUser();
  
          return userAuthService.userIsEffectivelyAManager(authenticatedUser) ?
                  managerProjectionType :
                  normalProjectionType;
      }
focal_method.class_method_signature: BaseProjectionFactory.getProjectionType(Class<?> normalProjectionType, Class<?> managerProjectionType)
focal_method.full_signature:  Class<?> getProjectionType(Class<?> normalProjectionType, Class<?> managerProjectionType)
focal_method.identifier: getProjectionType
focal_method.invocations: getAuthenticatedUser userIsEffectivelyAManager
focal_method.parameters: (Class<?> normalProjectionType, Class<?> managerProjectionType)
focal_method.return: Class<?>
focal_method.signature: Class<?> getProjectionType(Class<?> normalProjectionType, Class<?> managerProjectionType)