Search in sources :

Example 1 with SyncResult

use of com.google.cloud.tools.intellij.debugger.SyncResult in project google-cloud-intellij by GoogleCloudPlatform.

the class CloudAttachDialogTest method testDebuggableModuleSelected.

public void testDebuggableModuleSelected() {
    mockLoggedInUser();
    binding = mock(ProjectDebuggeeBinding.class);
    when(binding.buildResult(any(Project.class))).thenReturn(new CloudDebugProcessState());
    ProjectRepositoryValidator repositoryValidator = mock(ProjectRepositoryValidator.class);
    SyncResult syncResult = mockSyncResult(false, true);
    when(repositoryValidator.checkSyncStashState()).thenReturn(syncResult);
    CloudAttachDialog dialog = initDialog();
    dialog.setProjectRepositoryValidator(repositoryValidator);
    selectProjectWithDebuggableModules();
    ValidationInfo error = dialog.doValidate();
    assertNull(error);
    assertFalse(warningMessage.isVisible());
    assertFalse(warningHeader.isVisible());
    assertFalse(syncStashCheckbox.isVisible());
    assertTrue(targetSelector.isEnabled());
    dialog.close(0);
}
Also used : CloudDebugProcessState(com.google.cloud.tools.intellij.debugger.CloudDebugProcessState) Project(com.intellij.openapi.project.Project) CloudProject(com.google.cloud.tools.intellij.project.CloudProject) ValidationInfo(com.intellij.openapi.ui.ValidationInfo) ProjectRepositoryValidator(com.google.cloud.tools.intellij.debugger.ProjectRepositoryValidator) SyncResult(com.google.cloud.tools.intellij.debugger.SyncResult)

Example 2 with SyncResult

use of com.google.cloud.tools.intellij.debugger.SyncResult in project google-cloud-intellij by GoogleCloudPlatform.

the class CloudAttachDialogTest method testSyncStashReset.

/**
 * After selecting a module that requires sync/stash, any subsequent module that is selected that
 * has no remote repository is shown the sync/stash checkbox regardless of its state. The
 * visibility of this option needs to be properly reset.
 */
public void testSyncStashReset() {
    mockLoggedInUser();
    binding = mock(ProjectDebuggeeBinding.class);
    when(binding.buildResult(any(Project.class))).thenReturn(new CloudDebugProcessState());
    // Step 1 - select a debuggable module that requires stashing
    // The stash checkbox should be visible to the user
    boolean needsStash = true;
    boolean hasRemoteRepository = true;
    ProjectRepositoryValidator repositoryValidator = mock(ProjectRepositoryValidator.class);
    SyncResult syncResult = mockSyncResult(needsStash, hasRemoteRepository);
    when(repositoryValidator.checkSyncStashState()).thenReturn(syncResult);
    CloudAttachDialog dialog = initDialog();
    dialog.setProjectRepositoryValidator(repositoryValidator);
    selectProjectWithDebuggableModules();
    assertTrue(syncStashCheckbox.isVisible());
    // Step 2 - select a project with no remote repo that does NOT require stashing
    // The stash checkbox should now be hidden from the user
    needsStash = false;
    hasRemoteRepository = false;
    syncResult = mockSyncResult(needsStash, hasRemoteRepository);
    when(repositoryValidator.checkSyncStashState()).thenReturn(syncResult);
    selectEmptyProject();
    assertFalse(syncStashCheckbox.isVisible());
    dialog.close(0);
}
Also used : CloudDebugProcessState(com.google.cloud.tools.intellij.debugger.CloudDebugProcessState) Project(com.intellij.openapi.project.Project) CloudProject(com.google.cloud.tools.intellij.project.CloudProject) ProjectRepositoryValidator(com.google.cloud.tools.intellij.debugger.ProjectRepositoryValidator) SyncResult(com.google.cloud.tools.intellij.debugger.SyncResult)

Example 3 with SyncResult

use of com.google.cloud.tools.intellij.debugger.SyncResult in project google-cloud-intellij by GoogleCloudPlatform.

the class CloudAttachDialogTest method mockSyncResult.

/**
 * Creates a mock sync result representing a debuggable module selection that doesn't need stash
 * or sync
 */
private SyncResult mockSyncResult(boolean needsStash, boolean hasRemoteRepository) {
    SyncResult syncResult = mock(SyncResult.class);
    when(syncResult.needsStash()).thenReturn(needsStash);
    when(syncResult.needsSync()).thenReturn(false);
    when(syncResult.getTargetSyncSha()).thenReturn(null);
    when(syncResult.hasRemoteRepository()).thenReturn(hasRemoteRepository);
    return syncResult;
}
Also used : SyncResult(com.google.cloud.tools.intellij.debugger.SyncResult)

Aggregations

SyncResult (com.google.cloud.tools.intellij.debugger.SyncResult)3 CloudDebugProcessState (com.google.cloud.tools.intellij.debugger.CloudDebugProcessState)2 ProjectRepositoryValidator (com.google.cloud.tools.intellij.debugger.ProjectRepositoryValidator)2 CloudProject (com.google.cloud.tools.intellij.project.CloudProject)2 Project (com.intellij.openapi.project.Project)2 ValidationInfo (com.intellij.openapi.ui.ValidationInfo)1