@Test public void failed_update_writes_lastUpdateTime() throws Exception { makeMockSdkInstalled(MOCK_SDK_PATH); emulateMockSdkUpdateProcess(); SdkUpdater mockUpdater = mockManagedCloudSdk.newUpdater(); doThrow(new CommandExitException(-1, "")).when(mockUpdater).update(any(), any()); // supply custom clock to check update time has been properly set in settings. Clock mockClock = mock(Clock.class); when(mockUpdateService.getClock()).thenReturn(mockClock); long updateTime = 1000L; when(mockClock.millis()).thenReturn(updateTime); doCallRealMethod().when(mockUpdateService).notifySdkUpdateCompleted(); sdkService.update(); verify(mockUpdateService).notifySdkUpdateCompleted(); assertThat( CloudSdkServiceUserSettings.getInstance().getLastAutomaticUpdateTimestamp().isPresent()) .isTrue(); assertThat(CloudSdkServiceUserSettings.getInstance().getLastAutomaticUpdateTimestamp().get()) .isEqualTo(updateTime); }
ManagedCloudSdkUpdateService.getInstance().notifySdkUpdateCompleted();
@Override public void onSuccess(ManagedSdkJobResult result) { logger.info( "Managed Google Cloud SDK successfully installed/updated at: " + getSdkHomePath()); updateStatus(SdkStatus.READY); if (result == ManagedSdkJobResult.PROCESSED) { ManagedCloudSdkUpdateService.getInstance().notifySdkUpdateCompleted(); String trackingEventAction; switch (jobType) { case UPDATE: trackingEventAction = GctTracking.MANAGED_SDK_SUCCESSFUL_UPDATE; break; default: trackingEventAction = GctTracking.MANAGED_SDK_SUCCESSFUL_INSTALL; break; } UsageTrackerService.getInstance().trackEvent(trackingEventAction).ping(); } ManagedCloudSdkServiceUiPresenter.getInstance().notifyManagedSdkJobSuccess(jobType, result); // no need to abstain from checking install status anymore after success. CloudSdkServiceUserSettings.getInstance().setUserCancelledInstallation(false); }