示例#1
0
        public void Constructor_Poison_ReturnsActionTypePoison()
        {
            var jobQueueAction = new JobQueueAction <TQueuePoison>(default(TQueuePoison));

            Assert.Equal(JobQueueActionType.Poison, jobQueueAction.ActionType);
        }
示例#2
0
        public void Constructor_Poison_ReturnsDefaultObjectForPoison()
        {
            var jobQueueAction = new JobQueueAction <TQueuePoison>(default(TQueuePoison));

            Assert.Equal(default(TQueuePoison), jobQueueAction.QueuePoison);
        }
示例#3
0
        public void Constructor_ByActionType_ReturnsDefaultObjectForPoison(JobQueueActionType actionType)
        {
            var jobQueueAction = new JobQueueAction <TQueuePoison>(actionType);

            Assert.Equal(default(TQueuePoison), jobQueueAction.QueuePoison);
        }
示例#4
0
        public void Constructor_ByActionType_ReturnsExpectedActionType(JobQueueActionType actionType)
        {
            var jobQueueAction = new JobQueueAction <TQueuePoison>(actionType);

            Assert.Equal(actionType, jobQueueAction.ActionType);
        }
        private static JobDetails SimulateInspectionResultsToMonitorDurableJobStorageBehavior(JobQueueAction<object> [] inspectionResults)
        {
            var details = new JobDetails()
            {
                DurableStorage = A.Fake<IDurableJobQueue<int, object>>(),
                Inspector = A.Fake<IJobResultInspector<int, int, object>>(),
                Log = A.Fake<ILog>()
            };
            var observable = Enumerable.Repeat(new JobResult<int, int>(1, 1), inspectionResults.Length)
            .ToObservable();

            int counter = 0;
            using (var wait = new ManualResetEventSlim(false))
            {
                A.CallTo(() => details.Inspector.Inspect(A<JobResult<int, int>>.Ignored))
                .Invokes(call =>
                    {
                        if (Interlocked.Increment(ref counter) == inspectionResults.Length)
                        {
                            wait.Set();
                        }
                    })
                .ReturnsNextFromSequence(inspectionResults);

                details.JournalingJobResultQueue = new JobResultJournalWriter<int, int, object>(observable, details.Inspector,
                    details.DurableStorage, details.Log, Scheduler.Immediate);

                wait.Wait(TimeSpan.FromSeconds(5));

                return details;
            }
        }
示例#6
0
        public void FromJobSpecification_Inspect_ReturnsNullQueuePoison_OnGoodJobResult()
        {
            JobQueueAction <Poison <int> > inspectionResult = GetSuccessInspectionResult();

            Assert.Equal(null, inspectionResult.QueuePoison);
        }
示例#7
0
        public void FromJobSpecification_Inspect_ReturnJobQueueActionTypeOfComplete_OnGoodJobResult()
        {
            JobQueueAction <Poison <int> > inspectionResult = GetSuccessInspectionResult();

            Assert.Equal(JobQueueActionType.Complete, inspectionResult.ActionType);
        }