/** Returns true if this state has a valid debug client that can poll for snapshot information. */ @Transient public boolean isValidDebuggee() { SyncResult result = checkSyncStashState(); return result.isValidDebuggee(); }
/** * 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); }
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); }
? new ProjectRepositoryValidator(processResultState).checkSyncStashState() : projectRepositoryValidator.checkSyncStashState();
@Test public void testCheckSyncStashState_nullProject() { ProjectRepositoryValidator validator = new ProjectRepositoryValidator(state); SyncResult result = validator.checkSyncStashState(); Assert.assertFalse(result.isValidDebuggee()); Assert.assertFalse(result.needsStash()); Assert.assertFalse(result.needsSync()); Assert.assertFalse(result.hasLocalRepository()); Assert.assertFalse(result.hasRemoteRepository()); Assert.assertNull(result.getTargetSyncSha()); Assert.assertNull(result.getRepositoryType()); } }