public async Task NotAvailableInTimelyManner_RunAsync_LogsFailure() { _item.MaxApplicationReadyWaitTime = 5; _command.AvailableCheckDelay = 5000; var appInfo1 = new ApplicationUpgradeProgressInfo( _item.ApplicationName, _item.ApplicationTypeName, _item.ApplicationTypeVersion, upgradeState: UpgradeState.RollingForwardInProgress); var appInfo2 = new ApplicationUpgradeProgressInfo( _item.ApplicationName, _item.ApplicationTypeName, _item.ApplicationTypeVersion, upgradeState: UpgradeState.RollingForwardInProgress); _appClient .SetupSequence(c => c.GetApplicationUpgradeAsync(_item.ApplicationId, 60, CancellationToken.None)) .Returns(Task.FromResult(appInfo1)) .Returns(Task.FromResult(appInfo2)); await _command.RunAsync(); ShouldContainsLogMessage( $"Failed to upgrade application {_item.ApplicationName}: " + $"The application failed to startup within {_item.MaxApplicationReadyWaitTime} seconds"); }
public async Task NoErrors_RunAsync_LogsSuccess(UpgradeState upgradeState) { var appInfo = new ApplicationUpgradeProgressInfo( _item.ApplicationName, _item.ApplicationTypeName, _item.ApplicationTypeVersion, upgradeState: upgradeState); _appClient .Setup(c => c.GetApplicationUpgradeAsync(_item.ApplicationId, 60, CancellationToken.None)) .Returns(Task.FromResult(appInfo)); await _command.RunAsync(); ShouldContainsLogMessage($"Upgraded application {_item.ApplicationName} successfully"); }
public async Task NotAvailableOnFirstCheck_RunAsync_LogsSuccess() { var appInfo1 = new ApplicationUpgradeProgressInfo( _item.ApplicationName, _item.ApplicationTypeName, _item.ApplicationTypeVersion, upgradeState: UpgradeState.RollingForwardInProgress); var appInfo2 = new ApplicationUpgradeProgressInfo( _item.ApplicationName, _item.ApplicationTypeName, _item.ApplicationTypeVersion, upgradeState: UpgradeState.RollingForwardCompleted); _appClient .SetupSequence(c => c.GetApplicationUpgradeAsync(_item.ApplicationId, 60, CancellationToken.None)) .Returns(Task.FromResult(appInfo1)) .Returns(Task.FromResult(appInfo2)); await _command.RunAsync(); ShouldContainsLogMessage($"Upgraded application {_item.ApplicationName} successfully"); }
/// <summary> /// Serializes the object to JSON. /// </summary> /// <param name="writer">The <see cref="T: Newtonsoft.Json.JsonWriter" /> to write to.</param> /// <param name="obj">The object to serialize to JSON.</param> internal static void Serialize(JsonWriter writer, ApplicationUpgradeProgressInfo obj) { // Required properties are always serialized, optional properties are serialized when not null. writer.WriteStartObject(); writer.WriteProperty(obj.UpgradeState, "UpgradeState", UpgradeStateConverter.Serialize); writer.WriteProperty(obj.RollingUpgradeMode, "RollingUpgradeMode", UpgradeModeConverter.Serialize); writer.WriteProperty(obj.FailureReason, "FailureReason", FailureReasonConverter.Serialize); if (obj.Name != null) { writer.WriteProperty(obj.Name, "Name", JsonWriterExtensions.WriteStringValue); } if (obj.TypeName != null) { writer.WriteProperty(obj.TypeName, "TypeName", JsonWriterExtensions.WriteStringValue); } if (obj.TargetApplicationTypeVersion != null) { writer.WriteProperty(obj.TargetApplicationTypeVersion, "TargetApplicationTypeVersion", JsonWriterExtensions.WriteStringValue); } if (obj.UpgradeDomains != null) { writer.WriteEnumerableProperty(obj.UpgradeDomains, "UpgradeDomains", UpgradeDomainInfoConverter.Serialize); } if (obj.NextUpgradeDomain != null) { writer.WriteProperty(obj.NextUpgradeDomain, "NextUpgradeDomain", JsonWriterExtensions.WriteStringValue); } if (obj.UpgradeDescription != null) { writer.WriteProperty(obj.UpgradeDescription, "UpgradeDescription", ApplicationUpgradeDescriptionConverter.Serialize); } if (obj.UpgradeDurationInMilliseconds != null) { writer.WriteProperty(obj.UpgradeDurationInMilliseconds, "UpgradeDurationInMilliseconds", JsonWriterExtensions.WriteStringValue); } if (obj.UpgradeDomainDurationInMilliseconds != null) { writer.WriteProperty(obj.UpgradeDomainDurationInMilliseconds, "UpgradeDomainDurationInMilliseconds", JsonWriterExtensions.WriteStringValue); } if (obj.UnhealthyEvaluations != null) { writer.WriteEnumerableProperty(obj.UnhealthyEvaluations, "UnhealthyEvaluations", HealthEvaluationWrapperConverter.Serialize); } if (obj.CurrentUpgradeDomainProgress != null) { writer.WriteProperty(obj.CurrentUpgradeDomainProgress, "CurrentUpgradeDomainProgress", CurrentUpgradeDomainProgressInfoConverter.Serialize); } if (obj.StartTimestampUtc != null) { writer.WriteProperty(obj.StartTimestampUtc, "StartTimestampUtc", JsonWriterExtensions.WriteStringValue); } if (obj.FailureTimestampUtc != null) { writer.WriteProperty(obj.FailureTimestampUtc, "FailureTimestampUtc", JsonWriterExtensions.WriteStringValue); } if (obj.UpgradeDomainProgressAtFailure != null) { writer.WriteProperty(obj.UpgradeDomainProgressAtFailure, "UpgradeDomainProgressAtFailure", FailureUpgradeDomainProgressInfoConverter.Serialize); } if (obj.UpgradeStatusDetails != null) { writer.WriteProperty(obj.UpgradeStatusDetails, "UpgradeStatusDetails", JsonWriterExtensions.WriteStringValue); } writer.WriteEndObject(); }