@Test public void waitFor_installingSdk_then_readySdk_noErrors() throws InterruptedException { mockSdkStatusChange(SdkStatus.INSTALLING, SdkStatus.READY); cloudSdkServiceManager.blockUntilSdkReady(mockProject, "", mockStatusHandler); ApplicationManager.getApplication() .invokeAndWait(() -> verify(mockStatusHandler, never()).onError(any())); }
@Test public void waitFor_installingSdk_then_invalidSdk_reportsError() throws InterruptedException { mockSdkStatusChange(SdkStatus.INSTALLING, SdkStatus.INVALID); cloudSdkServiceManager.blockUntilSdkReady(mockProject, "", mockStatusHandler); ApplicationManager.getApplication() .invokeAndWait(() -> verify(mockStatusHandler).onError(any())); }
@Test public void waitFor_installingSdk_then_invalidSdk_showsErrorNotification() throws InterruptedException { mockSdkStatusChange(SdkStatus.INSTALLING, SdkStatus.INVALID); when(mockStatusHandler.getErrorMessage(SdkStatus.INVALID)) .thenReturn("invalid SDK after waiting"); cloudSdkServiceManager.blockUntilSdkReady(mockProject, "", mockStatusHandler); ApplicationManager.getApplication() .invokeAndWait( () -> verify(cloudSdkServiceManager) .showCloudSdkNotification( "invalid SDK after waiting", NotificationType.WARNING)); }
@Test public void waitFor_when_sdkInstallNotSupported_showsFatalErrorNotification() throws InterruptedException { mockSdkStatusChange(SdkStatus.NOT_AVAILABLE, SdkStatus.NOT_AVAILABLE); when(mockSdkService.isInstallSupported()).thenReturn(false); cloudSdkServiceManager.blockUntilSdkReady(mockProject, "", mockStatusHandler); ApplicationManager.getApplication() .invokeAndWait( () -> verify(cloudSdkServiceManager) .showCloudSdkNotification( CloudSdkMessageBundle.message("managedsdk.not.available"), NotificationType.ERROR)); }