コード例 #1
0
        private async Task ValidateActionsAsync(
            IPolicyAgentDocumentForTenant doc,
            IList <IRepairTask> repairTasks,
            IList <JsonExpectedActions> idsAndExpectedActions)
        {
            Guid activityId = Guid.NewGuid();

            var reconciler = CreateReconciler();

            var coordinatorContext = new CoordinatorContext {
                Doc = doc
            };

            ActionHelper.CreateMappedWorkItems(doc.Jobs, repairTasks, coordinatorContext);

            await reconciler.ReconcileAsync(activityId, coordinatorContext).ConfigureAwait(false);

            var IdActionMap = GetReconciledActions(coordinatorContext);

            Assert.IsTrue(IdActionMap.Keys.SequenceEqual(idsAndExpectedActions.Select(e => e.Id)));

            foreach (var idAndExpectedAction in idsAndExpectedActions)
            {
                var actualAction = IdActionMap[idAndExpectedAction.Id];
                Assert.IsTrue(actualAction.SequenceEqual(idAndExpectedAction.Actions));
            }
        }
コード例 #2
0
        public async Task BasicTest1Async()
        {
            var activityId = Guid.NewGuid();
            var job        = TenantJobHelper.CreateNewTenantJob();
            var jobs       = new List <ITenantJob> {
                job
            };

            var doc = TenantJobHelper.CreateNewPolicyAgentDocumentForTenant(jobs, 1);

            var coordinatorContext = new CoordinatorContext {
                Doc = doc
            };

            ActionHelper.CreateMappedWorkItems(jobs, new List <IRepairTask>(), coordinatorContext);

            await CreateReconciler().ReconcileAsync(activityId, coordinatorContext).ConfigureAwait(false);

            Assert.AreEqual(coordinatorContext.MappedTenantJobs[job.Id].Actions.Count, 1);
            var action = coordinatorContext.MappedTenantJobs[job.Id].Actions[0];

            Assert.IsTrue(action is CreateInPreparingAction, "Verifying if new repair task is being created");
        }
コード例 #3
0
        private static IDictionary <string, IList <string> > GetReconciledActions(CoordinatorContext coordinatorContext)
        {
            var IdActionMap = new Dictionary <string, IList <string> >(StringComparer.OrdinalIgnoreCase);

            foreach (var mappedTenantJob in coordinatorContext.MappedTenantJobs.Values)
            {
                // don't add Ids if there are no actions associated with it
                if (mappedTenantJob.Actions.Count > 0)
                {
                    IdActionMap.Add(mappedTenantJob.Id.ToString(), mappedTenantJob.Actions.Select(e => e.Name).ToList());
                }
            }

            foreach (var mappedRepairTask in coordinatorContext.MappedRepairTasks.Values)
            {
                // assume repair task ids don't conflict with tenant job ids.
                if (mappedRepairTask.Actions.Count > 0)
                {
                    IdActionMap.Add(mappedRepairTask.Id, mappedRepairTask.Actions.Select(e => e.Name).ToList());
                }
            }

            return(IdActionMap);
        }
コード例 #4
0
 public TaskRepository(AmsDataContext amsCtx, CoordinatorContext ctx)
 {
     this.amsCtx = amsCtx;
     this.ctx    = ctx;
 }