RunnerManagerPresenter extends BasePresenter implements RunnerManager,
                                                                     RunnerManagerView.ActionDelegate,
                                                                     ProjectActionHandler,
                                                                     SelectionManager.SelectionChangeListener { @Override public void onProjectReady(@NotNull ProjectActionEvent projectActionEvent) { view.setEnableReRunButton(false); view.setEnableStopButton(false); view.setEnableLogsButton(false); templateContainer.setVisible(true); getRunningProcessAction = actionFactory.createGetRunningProcess(); boolean isRunOperationAvailable = runnerUtil.hasRunPermission(); view.setEnableRunButton(isRunOperationAvailable); if (!isRunOperationAvailable) { return; } templateContainer.showEnvironments(); getRunningProcessAction.perform(); getSystemEnvironmentsAction.perform(); runnerTimer.schedule(ONE_SEC.getValue()); } @Inject  RunnerManagerPresenter(final RunnerManagerView view,
                                  RunnerActionFactory actionFactory,
                                  ModelsFactory modelsFactory,
                                  AppContext appContext,
                                  DtoFactory dtoFactory,
                                  ChooseRunnerAction chooseRunnerAction,
                                  EventBus eventBus,
                                  final RunnerLocalizationConstant locale,
                                  @LeftPanel TabContainer leftTabContainer,
                                  @LeftPropertiesPanel TabContainer leftPropertiesContainer,
                                  @RightPropertiesPanel TabContainer rightPropertiesContainer,
                                  PanelState panelState,
                                  Provider<TabBuilder> tabBuilderProvider,
                                  final ConsoleContainer consoleContainer,
                                  TerminalContainer terminalContainer,
                                  PropertiesContainer propertiesContainer,
                                  HistoryPanel history,
                                  TemplatesContainer templateContainer,
                                  RunnerCounter runnerCounter,
                                  SelectionManager selectionManager,
                                  TimerFactory timerFactory,
                                  GetSystemEnvironmentsAction getSystemEnvironmentsAction,
                                  RunnerUtil runnerUtil,
                                  @Run ResourcesLockedActionPermit runActionPermit,
                                  @Run ActionDenyAccessDialog runActionDenyAccessDialog); @NotNull RunnerManagerView getView(); void update(@NotNull Runner runner); @Override void onRunButtonClicked(); @Override void onRerunButtonClicked(); @Override void onStopButtonClicked(); @Override void onLogsButtonClicked(); @Override void stopRunner(@NotNull Runner runner); @Override void onMoreInfoBtnMouseOver(); @Override void onToggleSplitterClicked(boolean isShowSplitter); @Override Runner launchRunner(); @NotNull @Override Runner launchRunner(@NotNull RunOptions runOptions); @Override @NotNull Runner launchRunner(@NotNull RunOptions runOptions, @NotNull Scope scope, @NotNull String environmentName); @Override void go(@NotNull AcceptsOneWidget container); void setActive(); @NotNull @Override String getTitle(); @Nullable @Override ImageResource getTitleImage(); @Nullable @Override String getTitleToolTip(); @Override void onProjectReady(@NotNull ProjectActionEvent projectActionEvent); @Override void onProjectClosing(ProjectActionEvent event); @Override void onProjectClosed(@NotNull ProjectActionEvent projectActionEvent); @Override void onProjectOpened(ProjectActionEvent event); @NotNull Runner addRunner(@NotNull ApplicationProcessDescriptor processDescriptor); void addRunnerId(@NotNull Long runnerId); boolean isRunnerExist(@NotNull Long runnerId); @Override void onSelectionChanged(@NotNull Selection selection); static final String TIMER_STUB; }
@Test public void openProjectActionsShouldBePerformedWhenCurrentProjectIsNotNull() { when(descriptor.getPermissions()).thenReturn(Arrays.asList("run")); presenter.onProjectReady(projectActionEvent); verify(view).setEnableRunButton(true); verify(templates).setVisible(true); verify(view).setEnableRunButton(true); verify(view).setEnableReRunButton(false); verify(view).setEnableStopButton(false); verify(view).setEnableLogsButton(false); verify(actionFactory).createGetRunningProcess(); verify(runnerUtil).hasRunPermission(); verify(view).setEnableRunButton(true); verify(getRunningProcessAction).perform(); verify(getSystemEnvironmentsAction).perform(); verify(templates).showEnvironments(); verify(runnerTimer).schedule(TimeInterval.ONE_SEC.getValue()); }
@Test public void runningProcessActionShouldNotBePerformedWhenRunPermissionIsDenied() { when(runnerUtil.hasRunPermission()).thenReturn(false); presenter.onProjectReady(projectActionEvent); verify(templates).setVisible(true); verify(view).setEnableRunButton(false); verify(view).setEnableReRunButton(false); verify(view).setEnableStopButton(false); verify(view).setEnableLogsButton(false); verify(actionFactory).createGetRunningProcess(); verifyNoMoreInteractions(getRunningProcessAction, getSystemEnvironmentsAction); }