예제 #1
0
        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);
        }
예제 #2
0
        protected BaseWorkflowExecutor(IDictionary <string, string> configSettings = null, MockQueryClient queryClient = null)
        {
            ManagementClient    = new MockManagementClient();
            QueryClient         = queryClient;
            InfrastructureAgent = new MockInfrastructureAgentWrapper();
            Coordinator         = new MockInfrastructureCoordinatorFactory(ManagementClient, configSettings, queryClient, InfrastructureAgent).Create() as WindowsAzureInfrastructureCoordinator;
            NotificationContext = new MockManagementNotificationContext();
            CompletedEvent      = new ManualResetEvent(false);

            TestExecutionTimeInSeconds = 300;
        }
예제 #3
0
        private static void TestManualApproval(IEnumerable <ImpactReason> impactReasons, bool expectedReturnValue)
        {
            var notification = new MockManagementNotificationContext
            {
                ImpactedInstances = new List <ImpactedInstance>
                {
                    new ImpactedInstance("id_A", impactReasons),
                }
            };

            bool manualApprovalRequired = notification.IsManualApprovalRequired();

            Verify.AreEqual(manualApprovalRequired, expectedReturnValue);
        }