private void createUIComponents() { projectNameLabel = new HyperlinkLabelWithStateAccess(); projectNameLabel.setHyperlinkText( GoogleCloudCoreMessageBundle.getString("cloud.project.selector.no.selected.project")); projectAccountSeparatorLabel.setVisible(false /* only visible when project is selected. */); accountInfoLabel = new HyperlinkLabelWithStateAccess(); accountInfoLabel.addHyperlinkListener( (event) -> {
@Test public void validProject_no_LoggedInUsers_showLoginPrompt() { when(mockLoginService.isLoggedIn()).thenReturn(false); projectSelector.setSelectedProject(TEST_PROJECT); assertThat(projectSelector.getAccountInfoLabel().getHyperlinkText()) .isEqualTo( GoogleCloudCoreMessageBundle.message( "cloud.project.selector.not.signed.in", TEST_PROJECT.googleUsername())); assertThat(projectSelector.getAccountInfoLabel().getIcon()).isNull(); }
private void verifyUiStateForProject(CloudProject project) { if (project == null) { assertThat(projectSelector.getProjectNameLabel().getHyperlinkText()) .isEqualTo( GoogleCloudCoreMessageBundle.getString("cloud.project.selector.no.selected.project")); // no account information UI is visible/populated. assertThat(projectSelector.getProjectAccountSeparatorLabel().isVisible()).isFalse(); assertThat(projectSelector.getAccountInfoLabel().getHyperlinkText()).isEmpty(); assertThat(projectSelector.getAccountInfoLabel().getIcon()).isNull(); } else { assertThat(projectSelector.getProjectNameLabel().getHyperlinkText()) .isEqualTo(project.projectName()); assertThat(projectSelector.getProjectAccountSeparatorLabel().isVisible()).isTrue(); assertThat(projectSelector.getAccountInfoLabel().getHyperlinkText()) .contains(project.googleUsername()); assertThat(projectSelector.getAccountInfoLabel().getIcon()).isNotNull(); } }
@Test public void validProject_logOut_changesTo_loginPrompt() { projectSelector.setSelectedProject(TEST_PROJECT); // log out all users, notify login listeners. when(mockLoginService.isLoggedIn()).thenReturn(false); projectSelector.googleLoginListener.statusChanged(); // drain UI events. ApplicationManager.getApplication().invokeAndWait(() -> {}); assertThat(projectSelector.getAccountInfoLabel().getHyperlinkText()) .isEqualTo( GoogleCloudCoreMessageBundle.message( "cloud.project.selector.not.signed.in", TEST_PROJECT.googleUsername())); assertThat(projectSelector.getAccountInfoLabel().getIcon()).isNull(); }