public ActivityDiscrepancyQueueTestFixtures()
 {
     PushedMessages           = new List <ActivityDiscrepancy>();
     ActivityDiscrepancyQueue = new ActivityDiscrepancyQueue();
     CancellationTokenSource  = new CancellationTokenSource();
     _guidMapper = new GuidMapper();
 }
        public ActivityDiscrepancyQueueTestFixtures PushMessages(ActivityDiscrepancyType issue, params string[] activityIds)
        {
            foreach (var activityDiscrepancy in BuildDiscrepancies(issue, _guidMapper.MapCharsToGuids(activityIds)))
            {
                ActivityDiscrepancyQueue.Push(activityDiscrepancy);
                PushedMessages.Add(activityDiscrepancy);
            }

            return(this);
        }
        public ActivityDiscrepancyQueueTestFixtures CompleteAndWaitForQueueToBeProcessed()
        {
            if (_processingQueueTask == null)
            {
                throw new InvalidOperationException($"Cannot wait for queue to complete because {nameof(StartProcessingQueue)} has not been called yet");
            }

            ActivityDiscrepancyQueue.AddComplete();
            if (!_processingQueueTask.Wait(5 * 1000))
            {
                Assert.Fail("The queue processor did not finish in a timely manner");
            }

            return(this);
        }
 public ActivityDiscrepancyQueueTestFixtures StartProcessingQueue()
 {
     _processingQueueTask = ActivityDiscrepancyQueue.StartQueueProcessingAsync(LogMessage, new FixActionLogger(), CancellationTokenSource.Token);
     return(this);
 }