private static MockManagementNotificationContext GetNotification( string jobId, int ud, string[] instancesAndReasons, JobType jobType) { var impactedInstances = new List <ImpactedInstance>(); if (instancesAndReasons != null) { for (int i = 0; i < instancesAndReasons.Length - 1; i += 2) { var instance = instancesAndReasons[i]; var impactReason = (ImpactReason)Enum.Parse(typeof(ImpactReason), instancesAndReasons[i + 1]); var impactedInstance = new ImpactedInstance(instance, new List <ImpactReason> { impactReason }); impactedInstances.Add(impactedInstance); } } var notification = new MockManagementNotificationContext { ActiveJobId = jobId ?? Guid.NewGuid().ToString(), ActiveJobType = jobType, ActiveJobStepTargetUD = ud, ImpactedInstances = impactedInstances, NotificationType = NotificationType.StartJobStep, }; return(notification); }
public void ImpactToString() { var impact = new MockImpactDetail() { ComputeImpact = ResourceImpactEnum.None, DiskImpact = ResourceImpactEnum.Freeze, NetworkImpact = ResourceImpactEnum.Reset, OsImpact = ResourceImpactEnum.Unknown, EstimatedImpactDurationInSeconds = 42, }; var instance = new ImpactedInstance( "Role_IN_42", new[] { ImpactReason.ApplicationUpdate, ImpactReason.OSUpdate }, impact); Verify.AreEqual( "Role_IN_42[ApplicationUpdate,OSUpdate][Compute=None,Disk=Freeze,Network=Reset,OS=Unknown,Duration=42]", instance.ToString()); instance = new ImpactedInstance( "Role_IN_42", new[] { ImpactReason.ApplicationUpdate, ImpactReason.OSUpdate }, null); Verify.AreEqual( "Role_IN_42[ApplicationUpdate,OSUpdate]", instance.ToString()); instance = new ImpactedInstance( "Role_IN_42", new ImpactReason[0], impact); Verify.AreEqual( "Role_IN_42[][Compute=None,Disk=Freeze,Network=Reset,OS=Unknown,Duration=42]", instance.ToString()); }