/** Checks if the provided path contains a valid Cloud SDK installation. */ public boolean isValidCloudSdk(String path) { return validateCloudSdk(path).isEmpty(); }
/** Checks if the default SDK saved path contains a valid Cloud SDK installation. */ public boolean isValidCloudSdk() { return validateCloudSdk(CloudSdkService.getInstance().getSdkHomePath()).isEmpty(); }
/** Checks if the default SDK stored path contains a valid Cloud SDK. */ public Set<CloudSdkValidationResult> validateCloudSdk() { CloudSdkService instance = CloudSdkService.getInstance(); return validateCloudSdk(instance != null ? instance.getSdkHomePath() : null); }
private void setValidateCloudSdkResponse(CloudSdkValidationResult... results) { Set<CloudSdkValidationResult> validationResults = new HashSet<>(); Collections.addAll(validationResults, results); when(cloudSdkValidator.validateCloudSdk(any(String.class))).thenReturn(validationResults); }
@Override public void notifyIfVersionOutOfDate() { CloudSdkValidator sdkValidator = CloudSdkValidator.getInstance(); if (sdkValidator .validateCloudSdk() .contains(CloudSdkValidationResult.CLOUD_SDK_NOT_MINIMUM_VERSION)) { String message = "<p>" + CloudSdkValidationResult.CLOUD_SDK_NOT_MINIMUM_VERSION.getMessage() + "</p>"; showNotification( CloudSdkMessageBundle.message("appengine.cloudsdk.version.support.title"), message); } }
@Test public void testValidateCloudSdk_nullPath() { Set<CloudSdkValidationResult> results = sdkValidator.validateCloudSdk((Path) null); assertEquals(1, results.size()); assertEquals(CloudSdkValidationResult.CLOUD_SDK_NOT_FOUND, results.iterator().next()); }
@Test public void testValidateCloudSdk_nullString() { Set<CloudSdkValidationResult> results = sdkValidator.validateCloudSdk((String) null); assertEquals(1, results.size()); assertEquals(CloudSdkValidationResult.CLOUD_SDK_NOT_FOUND, results.iterator().next()); }
@Test public void testValidateJavaComponents() throws AppEngineJavaComponentsNotInstalledException { doThrow(AppEngineJavaComponentsNotInstalledException.class) .when(mockSdk) .validateAppEngineJavaComponents(); Set<CloudSdkValidationResult> results = sdkValidator.validateCloudSdk("/good/path"); assertEquals(1, results.size()); assertEquals(CloudSdkValidationResult.NO_APP_ENGINE_COMPONENT, results.iterator().next()); }
@Test public void testValidateCloudSdk_cloudSdkNotFound() throws CloudSdkNotFoundException, CloudSdkOutOfDateException, CloudSdkVersionFileException { doThrow(CloudSdkNotFoundException.class).when(mockSdk).validateCloudSdk(); Set<CloudSdkValidationResult> results = sdkValidator.validateCloudSdk(); assertEquals(1, results.size()); assertEquals(CloudSdkValidationResult.CLOUD_SDK_NOT_FOUND, results.iterator().next()); assertFalse(sdkValidator.isValidCloudSdk()); }
@Test public void testValidateCloudSdk_versionOutOfDate() throws CloudSdkNotFoundException, CloudSdkOutOfDateException, CloudSdkVersionFileException { doThrow(CloudSdkOutOfDateException.class).when(mockSdk).validateCloudSdk(); Set<CloudSdkValidationResult> results = sdkValidator.validateCloudSdk(); assertEquals(1, results.size()); assertEquals(CloudSdkValidationResult.CLOUD_SDK_NOT_MINIMUM_VERSION, results.iterator().next()); assertFalse(sdkValidator.isValidCloudSdk()); }
@Test public void testValidateCloudSdk_valid() { Set<CloudSdkValidationResult> results = sdkValidator.validateCloudSdk(); assertEquals(0, results.size()); assertTrue(sdkValidator.isValidCloudSdk()); }
@Test public void testNotifyIfCloudSdkNotSupported_isSupported() { when(cloudSdkValidator.validateCloudSdk()).thenReturn(new HashSet<>()); checker.notifyIfVersionOutOfDate(); verify(checker, times(0)).showNotification(anyString(), anyString()); }
@Test public void testValidateCloudSdk_versionParseError() throws CloudSdkVersionFileException { doThrow(CloudSdkVersionFileException.class).when(mockSdk).getVersion(); Set<CloudSdkValidationResult> results = sdkValidator.validateCloudSdk(); assertEquals(1, results.size()); assertEquals(CloudSdkValidationResult.CLOUD_SDK_VERSION_FILE_ERROR, results.iterator().next()); assertFalse(sdkValidator.isValidCloudSdk()); }
@Test public void testValidateCloudSdk_goodString() { Set<CloudSdkValidationResult> results = sdkValidator.validateCloudSdk("/good/path"); assertEquals(0, results.size()); assertTrue(sdkValidator.isValidCloudSdk("/good/path")); }
/** Sets up the {@code configuration} to be valid for a deployment to a standard environment. */ private void setUpValidStandardConfiguration() { when(mockSdkValidator.validateCloudSdk()).thenReturn(ImmutableSet.of()); when(mockAppEngineDeployable.isValid()).thenReturn(true); when(mockAppEngineDeployable.getEnvironment()) .thenReturn(AppEngineEnvironment.APP_ENGINE_STANDARD); configuration.setCloudProjectName("some-project-name"); }
@Test public void testNotifyIfCloudSdkNotSupported_sdkNotFound() { when(cloudSdkValidator.validateCloudSdk()) .thenReturn(Sets.newHashSet(CloudSdkValidationResult.CLOUD_SDK_NOT_FOUND)); checker.notifyIfVersionOutOfDate(); verify(checker, times(0)).showNotification(anyString(), anyString()); }
@Test public void testNotifyIfCloudSdkNotSupported_versionOutOfDateError() { when(cloudSdkValidator.validateCloudSdk()) .thenReturn(Sets.newHashSet(CloudSdkValidationResult.CLOUD_SDK_NOT_MINIMUM_VERSION)); checker.notifyIfVersionOutOfDate(); verify(checker, times(1)) .showNotification( "Google Cloud SDK Update Required", "<p>The Cloud SDK is out of date. Version " + CloudSdk.MINIMUM_VERSION + " is the minimum required version for use with the " + "Google Cloud Tools Plugin. To update, run \"gcloud components update\".</p>"); }
@Test public void checkConfiguration_when_sdkSupportsInstallation_doesNotThrowException() { setUpValidFlexConfiguration(); when(mockSdkService.getStatus()).thenReturn(SdkStatus.NOT_AVAILABLE); when(mockSdkService.isInstallSupported()).thenReturn(true); when(mockSdkValidator.validateCloudSdk()).thenReturn(ImmutableSet.of(CLOUD_SDK_NOT_FOUND)); try { configuration.checkConfiguration(mockRemoteServer, mockAppEngineDeployable, project); } catch (RuntimeConfigurationException e) { throw new AssertionError("installable SDK should not be validated", e); } }
@Test public void testCreateDeployRunnerInvalidDeploymentSourceFile_returnsNull() { when(cloudSdkValidator.validateCloudSdk()).thenReturn(ImmutableSet.of()); Optional<CancellableRunnable> runner = helper.createDeployRunner( loggingHandler, createMockDeployableDeploymentSource(), deploymentConfiguration, callback); assertFalse(runner.isPresent()); verify(callback, times(1)).errorOccurred("Deployment source not found: null."); }
@Test public void managedSdk_feature_notEnabled_customSdk_validationLabel_present() { when(mockPluginInfoService.shouldEnable(GctFeature.MANAGED_SDK)).thenReturn(false); when(mockCloudSdkService.getSdkHomePath()).thenReturn(Paths.get("/some/sdk")); when(mockCloudSdkValidator.validateCloudSdk(any())) .thenReturn(ImmutableSet.of(CloudSdkValidationResult.CLOUD_SDK_NOT_FOUND)); AppEngineCloudConfigurable appEngineCloudConfigurable = new AppEngineCloudConfigurable(); assertThat(appEngineCloudConfigurable.getSdkValidationErrorLabel().isVisible()).isTrue(); assertThat(appEngineCloudConfigurable.getSdkValidationErrorLabel().getText()) .contains("Cloud SDK home directory is not specified."); }