@VisibleForTesting void handleOpenProjectSelectionDialog() { ProjectSelectionDialog projectSelectionDialog = createProjectSelectionDialog(this); CloudProject newSelection = projectSelectionDialog.showDialog(cloudProject); // if null, it means no change or user cancelled selection dialog - no update required. if (newSelection != null) { setSelectedProject(newSelection); notifyProjectSelectionListeners(); // keep as last active project if IDE project has been specified. if (ideProject != null) { ActiveCloudProjectManager.getInstance().setActiveCloudProject(newSelection, ideProject); } } }
@Test public void projectChange_triggerListeners() { when(projectSelectionDialog.showDialog(any())).thenReturn(TEST_PROJECT); projectSelector.handleOpenProjectSelectionDialog(); verify(projectSelectionListener).projectSelected(TEST_PROJECT); }
@Test public void removedListener_isNotCalled() { when(projectSelectionDialog.showDialog(any())).thenReturn(TEST_PROJECT); projectSelector.removeProjectSelectionListener(projectSelectionListener); projectSelector.handleOpenProjectSelectionDialog(); verifyNoMoreInteractions(projectSelectionListener); }
@Test public void projectChange_updatesUi() { when(projectSelectionDialog.showDialog(any())).thenReturn(TEST_PROJECT); projectSelector.handleOpenProjectSelectionDialog(); verifyUiStateForProject(TEST_PROJECT); }
@Test public void projectChange_returnValidValue() { when(projectSelectionDialog.showDialog(any())).thenReturn(TEST_PROJECT); projectSelector.handleOpenProjectSelectionDialog(); assertThat(projectSelector.getSelectedProject()).isEqualTo(TEST_PROJECT); }
@Test public void lastSelectedProject_saved_withValidIdeProject() { projectSelector.setIdeProject(mockIdeProject); when(projectSelectionDialog.showDialog(any())).thenReturn(TEST_PROJECT); projectSelector.handleOpenProjectSelectionDialog(); verify(mockActiveCloudProjectManager).setActiveCloudProject(TEST_PROJECT, mockIdeProject); }