### Question:
LibraryScreen { public void showProjects() { final OrganizationalUnit activeOU = projectContext.getActiveOrganizationalUnit() .orElseThrow(() -> new IllegalStateException("Cannot try to query library projects without an active organizational unit.")); this.showProjects(activeOU); } @Inject  LibraryScreen(final View view,
                         final ManagedInstance<DeleteOrganizationalUnitPopUpPresenter> deleteOrganizationalUnitPopUpPresenters,
                         final WorkspaceProjectContext projectContext,
                         final ProjectController projectController,
                         final OrganizationalUnitController organizationalUnitController,
                         final EmptyLibraryScreen emptyLibraryScreen,
                         final PopulatedLibraryScreen populatedLibraryScreen,
                         final OrgUnitsMetricsScreen orgUnitsMetricsScreen,
                         final SettingsScreenPresenter settingsScreenPresenter,
                         final ContributorsListPresenter contributorsListPresenter,
                         final Caller<LibraryService> libraryService,
                         final Caller<OrganizationalUnitService> organizationalUnitService,
                         final LibraryPlaces libraryPlaces,
                         final SpaceContributorsListServiceImpl spaceContributorsListService,
                         final Event<NotificationEvent> notificationEvent,
                         final TranslationService translationService,
                         final Promises promises); @PostConstruct void init(); void trySamples(); void importProject(); void delete(); void showProjects(); void showContributors(); void showMetrics(); void showSettings(); boolean userCanCreateProjects(); boolean userCanUpdateOrganizationalUnit(); boolean userCanDeleteOrganizationalUnit(); void onNewProject(@Observes NewProjectEvent e); void onRepositoryRemovedEvent(@Observes RepositoryRemovedEvent e); void onProjectCountUpdate(@Observes final ProjectCountUpdate projectCountUpdate); void onSpaceContributorsUpdated(@Observes final SpaceContributorsUpdatedEvent spaceContributorsUpdatedEvent); @OnClose void onClose(); @WorkbenchPartTitle String getTitle(); @WorkbenchPartView View getView();  }### Answer:
@Test public void showProjectsTest() { doReturn(true).when(view).isProjectsTabActive(); doReturn(true).when(libraryService).hasProjects(any()); final HTMLElement populatedLibraryScreenElement = mock(HTMLElement.class); when(populatedLibraryScreen.getView().getElement()).thenReturn(populatedLibraryScreenElement); doReturn(3).when(populatedLibraryScreen).getProjectsCount(); libraryScreen.showProjects(); verify(view).updateContent(populatedLibraryScreenElement); verify(view).setProjectsCount(3); }
@Test public void testRedirectIfNoRightPermissions() { doReturn(false).when(organizationalUnitController).canReadOrgUnit(any()); this.libraryScreen.showProjects(); verify(this.libraryService, times(0)).hasProjects(any()); verify(this.libraryPlaces).goToOrganizationalUnits(); }