/** * Prepares common test case with test user (active) and its one test project. * * @param selectedProject Project to set as selected for the dialog, may be null/empty. */ private void prepareOneTestUserOneTestProjectDialog(CloudProject selectedProject) { mockUserList(Collections.singletonList(mockTestUser)); mockUserProjects(mockTestUser, Collections.singletonList(testGoogleProject)); cleanLoadUsersAndProjects(); projectSelectionDialog.setSelectedProject(selectedProject); }
@Test public void addActiveAccount_withNoProjects_clearsProjectList() { prepareOneTestUserOneTestProjectDialog(testUiProject); String activeUserEmail = "active-test@google.com"; CredentialedUser mockAnotherUser = mock(CredentialedUser.class); when(mockAnotherUser.getEmail()).thenReturn(activeUserEmail); mockUserList(Arrays.asList(mockAnotherUser /* active */, mockTestUser)); mockUserProjects(mockAnotherUser, Collections.emptyList()); cleanLoadUsersAndProjects(); assertThat(projectSelectionDialog.getAccountComboBox().getSelectedItem()) .isEqualTo(mockAnotherUser); assertThat(projectSelectionDialog.getProjectListTableModel().getRowCount()).isEqualTo(0); assertThat(projectSelectionDialog.getProjectListTable().getSelectedRow()).isEqualTo(-1); }
@Test public void getCloudProject_returns_selectedProject() { prepareOneTestUserOneTestProjectDialog(testUiProject); Project secondProject = new Project(); secondProject.setName("project-2"); secondProject.setProjectId("project-2-id"); mockUserProjects(mockTestUser, Arrays.asList(testGoogleProject, secondProject)); cleanLoadUsersAndProjects(); projectSelectionDialog.showProjectInList(secondProject.getName()); CloudProject selectedProject = projectSelectionDialog.getSelectedProject(); CloudProject expected = CloudProject.create( secondProject.getName(), secondProject.getProjectId(), mockTestUser.getEmail()); assertThat(selectedProject).isEqualTo(expected); }