public static IJobMutator Stub <T>(this IJobMutator jobMutator, World world)
        {
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }
            if (world == null)
            {
                throw new ArgumentNullException("world");
            }

            jobMutator.Mutate <T>(null).ReturnsForAnyArgs(c =>
            {
                var args = c.Args();
                var job  = (Job)args[0];

                var newJob = new Job(job.Id, job.Type, job.Method, job.Arguments, job.CreatedOn, job.RootId,
                                     job.ParentId,
                                     job.CorrelationId, (JobStatus?)args[1] ?? job.Status, (int?)args[2] ?? job.DispatchCount,
                                     (DateTime?)args[3] ?? job.RetryOn, job.ExceptionFilters, (Continuation)args[4] ?? job.Continuation,
                                     (bool?)args[5] ?? job.Suspended);

                world.PersistenceStore.Load(job.Id).Returns(newJob);

                return(newJob);
            });

            return(jobMutator);
        }
Beispiel #2
0
        public JobQueueFactory(
            IPersistenceStore persistenceStore,
            IDependableConfiguration configuration,
            IEventStream eventStream,
            IRecoverableAction recoverableAction,
            IJobMutator jobMutator)
        {
            if (persistenceStore == null)
            {
                throw new ArgumentNullException("persistenceStore");
            }
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (eventStream == null)
            {
                throw new ArgumentNullException("eventStream");
            }
            if (recoverableAction == null)
            {
                throw new ArgumentNullException("recoverableAction");
            }
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }

            _persistenceStore  = persistenceStore;
            _configuration     = configuration;
            _eventStream       = eventStream;
            _recoverableAction = recoverableAction;
            _jobMutator        = jobMutator;
        }
        public static Queue <Mutation> Mutations(this IJobMutator jobMutator, Job job)
        {
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }
            if (job == null)
            {
                throw new ArgumentNullException("job");
            }

            var calls = from call in jobMutator.ReceivedCalls()
                        let arguments = call.GetArguments()
                                        where call.GetMethodInfo().Name == "Mutate" && ((Job)arguments[0]).Id == job.Id
                                        select new Mutation
            {
                JobStatus     = (JobStatus?)arguments[1],
                DispatchCount = (int?)arguments[2],
                RetryOn       = (DateTime?)arguments[3],
                Continuation  = (Continuation)arguments[4],
                Suspended     = (bool?)arguments[5]
            };

            return(new Queue <Mutation>(calls));
        }
Beispiel #4
0
        public Scheduler(
            QueueConfiguration queueConfiguration,
            IDependableConfiguration configuration,
            IPersistenceStore persistenceStore,
            Func<DateTime> now,
            IFailedJobQueue failedJobQueue,
            IRecoverableAction recoverableAction,
            IJobRouter router,
            IActivityToContinuationConverter activityToContinuationConverter,
            IEnumerable<IJobPump> jobPumps,
            IJobMutator jobMutator)
        {
            if (queueConfiguration == null) throw new ArgumentNullException("queueConfiguration");
            if (configuration == null) throw new ArgumentNullException("configuration");
            if (persistenceStore == null) throw new ArgumentNullException("persistenceStore");
            if (now == null) throw new ArgumentNullException("now");
            if (failedJobQueue == null) throw new ArgumentNullException("failedJobQueue");
            if (recoverableAction == null) throw new ArgumentNullException("recoverableAction");
            if (router == null) throw new ArgumentNullException("router");
            if (activityToContinuationConverter == null)
                throw new ArgumentNullException("activityToContinuationConverter");
            if (jobPumps == null) throw new ArgumentNullException("jobPumps");
            if (jobMutator == null) throw new ArgumentNullException("jobMutator");

            _persistenceStore = persistenceStore;
            _now = now;
            _failedJobQueue = failedJobQueue;
            _recoverableAction = recoverableAction;

            _router = router;
            _activityToContinuationConverter = activityToContinuationConverter;
            _jobPumps = jobPumps;
            _jobMutator = jobMutator;
        }
        public ContinuationDispatcher(IJobRouter router,
                                      IJobMutator jobMutator,
                                      IPersistenceStore persistenceStore,
                                      IRecoverableAction recoverableAction)
        {
            if (router == null)
            {
                throw new ArgumentNullException("router");
            }
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }
            if (persistenceStore == null)
            {
                throw new ArgumentNullException("persistenceStore");
            }
            if (recoverableAction == null)
            {
                throw new ArgumentNullException("recoverableAction");
            }

            _router            = router;
            _jobMutator        = jobMutator;
            _persistenceStore  = persistenceStore;
            _recoverableAction = recoverableAction;
        }
Beispiel #6
0
        public WaitingForChildrenTransition(IPersistenceStore persistenceStore,
                                            IContinuationDispatcher continuationDispatcher,
                                            IActivityToContinuationConverter activityToContinuationConverter,
                                            IRecoverableAction recoverableAction,
                                            IJobMutator jobMutator)
        {
            if (persistenceStore == null)
            {
                throw new ArgumentNullException("persistenceStore");
            }
            if (continuationDispatcher == null)
            {
                throw new ArgumentNullException("continuationDispatcher");
            }
            if (activityToContinuationConverter == null)
            {
                throw new ArgumentNullException("activityToContinuationConverter");
            }
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }

            _persistenceStore                = persistenceStore;
            _continuationDispatcher          = continuationDispatcher;
            _activityToContinuationConverter = activityToContinuationConverter;
            _recoverableAction               = recoverableAction;
            _jobMutator = jobMutator;
        }
Beispiel #7
0
        public JobQueue(IEnumerable<Job> items, 
            int suspendedCount,
            ActivityConfiguration configuration,    
            IEnumerable<ActivityConfiguration> allActivityConfiguration,
            IPersistenceStore persistenceStore,
            IEventStream eventStream,
            IRecoverableAction recoverableAction,
            IJobMutator jobMutator)
        {
            if (items == null) throw new ArgumentNullException("items");
            if (configuration == null) throw new ArgumentNullException("configuration");
            if (allActivityConfiguration == null) throw new ArgumentNullException("allActivityConfiguration");
            if (persistenceStore == null) throw new ArgumentNullException("persistenceStore");
            if (eventStream == null) throw new ArgumentNullException("eventStream");
            if (recoverableAction == null) throw new ArgumentNullException("recoverableAction");
            if (jobMutator == null) throw new ArgumentNullException("JobMutator");

            Configuration = configuration;

            _suspendedCount = suspendedCount;
            _allActivityConfiguration = allActivityConfiguration;
            _persistenceStore = persistenceStore;
            _eventStream = eventStream;
            _recoverableAction = recoverableAction;
            _jobMutator = jobMutator;
            _items = new Queue<Job>(items);
        }
Beispiel #8
0
 public RunningTransition(IJobMutator jobMutator)
 {
     if (jobMutator == null)
     {
         throw new ArgumentNullException("JobMutator");
     }
     _jobMutator = jobMutator;
 }
        public FailedTransition(IDependableConfiguration configuration, IJobMutator jobMutator, Func<DateTime> now)
        {
            if (configuration == null) throw new ArgumentNullException("configuration");
            if (jobMutator == null) throw new ArgumentNullException("JobMutator");
            if (now == null) throw new ArgumentNullException("now");

            _configuration = configuration;
            _jobMutator = jobMutator;
            _now = now;
        }
Beispiel #10
0
        public EndTransition(IPersistenceStore jobRepository,
            IJobMutator jobMutator,
            IContinuationDispatcher continuationDispatcher)
        {
            if (jobRepository == null) throw new ArgumentNullException("jobRepository");
            if (jobMutator == null) throw new ArgumentNullException("JobMutator");
            if (continuationDispatcher == null) throw new ArgumentNullException("continuationDispatcher");

            _jobRepository = jobRepository;
            _jobMutator = jobMutator;
            _continuationDispatcher = continuationDispatcher;
        }
Beispiel #11
0
        public JobQueue(IEnumerable <Job> items,
                        int suspendedCount,
                        ActivityConfiguration configuration,
                        IEnumerable <ActivityConfiguration> allActivityConfiguration,
                        IPersistenceStore persistenceStore,
                        IEventStream eventStream,
                        IRecoverableAction recoverableAction,
                        IJobMutator jobMutator)
        {
            if (items == null)
            {
                throw new ArgumentNullException("items");
            }
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (allActivityConfiguration == null)
            {
                throw new ArgumentNullException("allActivityConfiguration");
            }
            if (persistenceStore == null)
            {
                throw new ArgumentNullException("persistenceStore");
            }
            if (eventStream == null)
            {
                throw new ArgumentNullException("eventStream");
            }
            if (recoverableAction == null)
            {
                throw new ArgumentNullException("recoverableAction");
            }
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }

            Configuration = configuration;

            _suspendedCount           = suspendedCount;
            _allActivityConfiguration = allActivityConfiguration;
            _persistenceStore         = persistenceStore;
            _eventStream       = eventStream;
            _recoverableAction = recoverableAction;
            _jobMutator        = jobMutator;
            _items             = new Queue <Job>(items);
        }
        public ContinuationDispatcher(IJobRouter router,
            IJobMutator jobMutator,
            IPersistenceStore persistenceStore,
            IRecoverableAction recoverableAction,
            IJobRootValidator jobRootValidator)
        {
            if (router == null) throw new ArgumentNullException("router");
            if (jobMutator == null) throw new ArgumentNullException("JobMutator");
            if (persistenceStore == null) throw new ArgumentNullException("persistenceStore");
            if (recoverableAction == null) throw new ArgumentNullException("recoverableAction");

            _router = router;
            _jobMutator = jobMutator;
            _persistenceStore = persistenceStore;
            _recoverableAction = recoverableAction;
            _jobRootValidator = jobRootValidator;
        }
        public WaitingForChildrenTransition(IPersistenceStore persistenceStore,
            IContinuationDispatcher continuationDispatcher,
            IActivityToContinuationConverter activityToContinuationConverter,
            IRecoverableAction recoverableAction,
            IJobMutator jobMutator)
        {
            if (persistenceStore == null) throw new ArgumentNullException("persistenceStore");
            if (continuationDispatcher == null) throw new ArgumentNullException("continuationDispatcher");
            if (activityToContinuationConverter == null)
                throw new ArgumentNullException("activityToContinuationConverter");
            if (jobMutator == null) throw new ArgumentNullException("JobMutator");

            _persistenceStore = persistenceStore;
            _continuationDispatcher = continuationDispatcher;
            _activityToContinuationConverter = activityToContinuationConverter;
            _recoverableAction = recoverableAction;
            _jobMutator = jobMutator;
        }
        public JobQueueFactory(
            IPersistenceStore persistenceStore, 
            IDependableConfiguration configuration,
            IEventStream eventStream,
            IRecoverableAction recoverableAction,
            IJobMutator jobMutator)
        {
            if (persistenceStore == null) throw new ArgumentNullException("persistenceStore");
            if (configuration == null) throw new ArgumentNullException("configuration");
            if (eventStream == null) throw new ArgumentNullException("eventStream");
            if (recoverableAction == null) throw new ArgumentNullException("recoverableAction");
            if (jobMutator == null) throw new ArgumentNullException("jobMutator");

            _persistenceStore = persistenceStore;
            _configuration = configuration;
            _eventStream = eventStream;
            _recoverableAction = recoverableAction;
            _jobMutator = jobMutator;
        }
Beispiel #15
0
        public FailedTransition(IDependableConfiguration configuration, IJobMutator jobMutator, Func <DateTime> now)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }
            if (now == null)
            {
                throw new ArgumentNullException("now");
            }

            _configuration = configuration;
            _jobMutator    = jobMutator;
            _now           = now;
        }
        public StatusChanger(IEventStream eventStream,
            IRunningTransition runningTransition,
            IFailedTransition failedTransition,
            IEndTransition endTransition,
            IWaitingForChildrenTransition waitingForChildrenTransition,
            IJobMutator jobMutator)
        {
            if (eventStream == null) throw new ArgumentNullException("eventStream");
            if (runningTransition == null) throw new ArgumentNullException("runningTransition");
            if (failedTransition == null) throw new ArgumentNullException("failedTransition");
            if (endTransition == null) throw new ArgumentNullException("endTransition");
            if (waitingForChildrenTransition == null) throw new ArgumentNullException("waitingForChildrenTransition");
            if (jobMutator == null) throw new ArgumentNullException("jobMutator");

            _runningTransition = runningTransition;
            _failedTransition = failedTransition;
            _endTransition = endTransition;
            _waitingForChildrenTransition = waitingForChildrenTransition;
            _jobMutator = jobMutator;
        }
Beispiel #17
0
        public EndTransition(IPersistenceStore jobRepository,
                             IJobMutator jobMutator,
                             IContinuationDispatcher continuationDispatcher)
        {
            if (jobRepository == null)
            {
                throw new ArgumentNullException("jobRepository");
            }
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }
            if (continuationDispatcher == null)
            {
                throw new ArgumentNullException("continuationDispatcher");
            }

            _jobRepository          = jobRepository;
            _jobMutator             = jobMutator;
            _continuationDispatcher = continuationDispatcher;
        }
Beispiel #18
0
        public StatusChanger(IEventStream eventStream,
                             IRunningTransition runningTransition,
                             IFailedTransition failedTransition,
                             IEndTransition endTransition,
                             IWaitingForChildrenTransition waitingForChildrenTransition,
                             IJobMutator jobMutator)
        {
            if (eventStream == null)
            {
                throw new ArgumentNullException("eventStream");
            }
            if (runningTransition == null)
            {
                throw new ArgumentNullException("runningTransition");
            }
            if (failedTransition == null)
            {
                throw new ArgumentNullException("failedTransition");
            }
            if (endTransition == null)
            {
                throw new ArgumentNullException("endTransition");
            }
            if (waitingForChildrenTransition == null)
            {
                throw new ArgumentNullException("waitingForChildrenTransition");
            }
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }

            _runningTransition            = runningTransition;
            _failedTransition             = failedTransition;
            _endTransition                = endTransition;
            _waitingForChildrenTransition = waitingForChildrenTransition;
            _jobMutator = jobMutator;
        }
 public RunningTransition(IJobMutator jobMutator)
 {
     if (jobMutator == null) throw new ArgumentNullException("JobMutator");
     _jobMutator = jobMutator;
 }
Beispiel #20
0
        public Scheduler(
            QueueConfiguration queueConfiguration,
            IDependableConfiguration configuration,
            IPersistenceStore persistenceStore,
            Func <DateTime> now,
            IFailedJobQueue failedJobQueue,
            IRecoverableAction recoverableAction,
            IJobRouter router,
            IActivityToContinuationConverter activityToContinuationConverter,
            IEnumerable <IJobPump> jobPumps,
            IJobMutator jobMutator)
        {
            if (queueConfiguration == null)
            {
                throw new ArgumentNullException("queueConfiguration");
            }
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (persistenceStore == null)
            {
                throw new ArgumentNullException("persistenceStore");
            }
            if (now == null)
            {
                throw new ArgumentNullException("now");
            }
            if (failedJobQueue == null)
            {
                throw new ArgumentNullException("failedJobQueue");
            }
            if (recoverableAction == null)
            {
                throw new ArgumentNullException("recoverableAction");
            }
            if (router == null)
            {
                throw new ArgumentNullException("router");
            }
            if (activityToContinuationConverter == null)
            {
                throw new ArgumentNullException("activityToContinuationConverter");
            }
            if (jobPumps == null)
            {
                throw new ArgumentNullException("jobPumps");
            }
            if (jobMutator == null)
            {
                throw new ArgumentNullException("JobMutator");
            }

            _persistenceStore = persistenceStore;
            _now               = now;
            _failedJobQueue    = failedJobQueue;
            _recoverableAction = recoverableAction;

            _router = router;
            _activityToContinuationConverter = activityToContinuationConverter;
            _jobPumps   = jobPumps;
            _jobMutator = jobMutator;
        }