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)); } }
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"); }
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); }
public TaskRepository(AmsDataContext amsCtx, CoordinatorContext ctx) { this.amsCtx = amsCtx; this.ctx = ctx; }