public RecurringJobSchedulerFacts()
        {
            _context = new BackgroundProcessContextMock();

            _throttler = new Mock<IThrottler>();

            // Setting up the successful path
            _instant = new Mock<IScheduleInstant>();
            _instant.Setup(x => x.GetNextInstants(It.IsAny<DateTime?>())).Returns(new[] { _instant.Object.NowInstant });

            var timeZone1 = TimeZoneInfo.Local;

            _instantFactory = (schedule, timeZone) => _instant.Object;

            _recurringJob = new Dictionary<string, string>
            {
                { "Cron", "* * * * *" },
                { "Job", JobHelper.ToJson(InvocationData.Serialize(Job.FromExpression(() => Console.WriteLine()))) },
                { "TimeZoneId", timeZone1.Id }
            };

            _connection = new Mock<IStorageConnection>();
            _context.Storage.Setup(x => x.GetConnection()).Returns(_connection.Object);

            _connection.Setup(x => x.GetAllItemsFromSet("recurring-jobs"))
                .Returns(new HashSet<string> { RecurringJobId });

            _connection.Setup(x => x.GetAllEntriesFromHash(String.Format("recurring-job:{0}", RecurringJobId)))
                .Returns(_recurringJob);

            _backgroundJobMock = new BackgroundJobMock();

            _factory = new Mock<IBackgroundJobFactory>();
            _factory.Setup(x => x.Create(It.IsAny<CreateContext>())).Returns(_backgroundJobMock.Object);
        }
示例#2
0
 public PerformContextFacts()
 {
     _storage           = new Mock <JobStorage>();
     _connection        = new Mock <IStorageConnection>();
     _backgroundJob     = new BackgroundJobMock();
     _cancellationToken = new Mock <IJobCancellationToken>();
 }
示例#3
0
        public RecurringJobSchedulerFacts()
        {
            _context = new BackgroundProcessContextMock();
            _context.StoppingTokenSource = new CancellationTokenSource(TimeSpan.FromSeconds(1));

            // Setting up the successful path

            var timeZone = TimeZoneInfo.Local;

            _nowInstantFactory = () => _nowInstant;

            _timeZoneResolver = new Mock <ITimeZoneResolver>();
            _timeZoneResolver.Setup(x => x.GetTimeZoneById(It.IsAny <string>())).Throws <InvalidTimeZoneException>();
            _timeZoneResolver.Setup(x => x.GetTimeZoneById(timeZone.Id)).Returns(timeZone);

            // ReSharper disable once PossibleInvalidOperationException
            _nextInstant = _cronExpression.GetNextOccurrence(_nowInstant, timeZone).Value;

            _recurringJob = new Dictionary <string, string>
            {
                { "Cron", _expressionString },
                { "Job", InvocationData.SerializeJob(Job.FromExpression(() => Console.WriteLine())).SerializePayload() },
                { "TimeZoneId", timeZone.Id }
            };

            _connection = new Mock <IStorageConnection>();

            _connection.SetupSequence(x => x.GetFirstByLowestScoreFromSet("recurring-jobs", 0, JobHelper.ToTimestamp(_nowInstant)))
            .Returns(RecurringJobId)
            .Returns((string)null);

            _connection.Setup(x => x.GetAllEntriesFromHash($"recurring-job:{RecurringJobId}"))
            .Returns(_recurringJob);

            _storageConnection = new Mock <JobStorageConnection>();
            _storageConnection.Setup(x => x.GetFirstByLowestScoreFromSet(null, It.IsAny <double>(), It.IsAny <double>(), It.IsAny <int>()))
            .Throws(new ArgumentNullException("key"));
            _storageConnection.SetupSequence(x => x.GetFirstByLowestScoreFromSet("recurring-jobs", 0, JobHelper.ToTimestamp(_nowInstant), It.IsAny <int>()))
            .Returns(new List <string> {
                RecurringJobId
            })
            .Returns((List <string>)null);

            _storageConnection.Setup(x => x.GetAllEntriesFromHash($"recurring-job:{RecurringJobId}")).Returns(_recurringJob);

            _transaction = new Mock <IWriteOnlyTransaction>();

            _connection.Setup(x => x.CreateWriteTransaction()).Returns(_transaction.Object);
            _storageConnection.Setup(x => x.CreateWriteTransaction()).Returns(_transaction.Object);

            _backgroundJobMock = new BackgroundJobMock();

            _factory = new Mock <IBackgroundJobFactory>();
            _factory.Setup(x => x.Create(It.IsAny <CreateContext>())).Returns(_backgroundJobMock.Object);

            _stateMachine = new Mock <IStateMachine>();
            _factory.SetupGet(x => x.StateMachine).Returns(_stateMachine.Object);
        }
 public ApplyStateContextFacts()
 {
     _storage = new Mock<JobStorage>();
     _connection = new Mock<IStorageConnection>();
     _transaction = new Mock<IWriteOnlyTransaction>();
     _backgroundJob = new BackgroundJobMock();
     _newState = new Mock<IState>();
     _newState.Setup(x => x.Name).Returns(NewState);
 }
示例#5
0
 public ApplyStateContextFacts()
 {
     _storage       = new Mock <JobStorage>();
     _connection    = new Mock <IStorageConnection>();
     _transaction   = new Mock <IWriteOnlyTransaction>();
     _backgroundJob = new BackgroundJobMock();
     _newState      = new Mock <IState>();
     _newState.Setup(x => x.Name).Returns(NewState);
 }
            public PerformContextMock(string jobId, Dictionary <string, StringBuilder> values)
            {
                Connection        = new Mock <IStorageConnection>();
                BackgroundJob     = new BackgroundJobMock(jobId, values);
                CancellationToken = new Mock <IJobCancellationToken>();

                _context = new Lazy <PerformContext>(
                    () => new PerformContext(Connection.Object, BackgroundJob.Object, CancellationToken.Object));
            }
        public CoreStateMachineFacts()
        {
            _stateHandlersThunk = storage => _handlers;
            
            var backgroundJob = new BackgroundJobMock { Id = JobId };
            _applyContext = new ApplyStateContextMock
            {
                BackgroundJob = backgroundJob,
                OldStateName = OldStateName
            };

            _applyContext.NewState.Setup(x => x.Name).Returns(StateName);
        }
示例#8
0
        public CoreStateMachineFacts()
        {
            _stateHandlersThunk = storage => _handlers;

            var backgroundJob = new BackgroundJobMock {
                Id = JobId
            };

            _applyContext = new ApplyStateContextMock
            {
                BackgroundJob = backgroundJob,
                OldStateName  = OldStateName
            };

            _applyContext.NewState.Setup(x => x.Name).Returns(StateName);
        }
示例#9
0
        public RecurringDateTimeJobSchedulerFacts()
        {
            _context = new BackgroundProcessContextMock();

            _throttler = new Mock <IThrottler>();

            // Setting up the successful path
            _instant = new Mock <IScheduleInstant>();
            _instant.Setup(x => x.GetNextInstants(It.IsAny <DateTime>(), null)).Returns(new[] { _instant.Object.NowInstant });
            _instant.Setup(x => x.GetNextInstants(It.IsAny <DateTime>(), It.IsAny <DateTime>())).Returns(new[] { _instant.Object.NowInstant });
            _instant.Setup(x => x.NowInstant).Returns(DateTime.UtcNow);
            _instant.Setup(x => x.NextInstant).Returns(_instant.Object.NowInstant);

            var timeZone1 = TimeZoneInfo.Local;

            _instantFactory = (schedule, timeZone) => _instant.Object;

            _recurringJob = new Dictionary <string, string>
            {
                { "Cron", "* * * * *" },
                { "Job", JobHelper.ToJson(InvocationData.Serialize(Job.FromExpression(() => Console.WriteLine()))) },
                { "TimeZoneId", timeZone1.Id },
                { "StartDate", null },
                { "EndDate", null }
            };

            _connection = new Mock <IStorageConnection>();
            _context.Storage.Setup(x => x.GetConnection()).Returns(_connection.Object);

            _connection.Setup(x => x.GetAllItemsFromSet(PluginConstants.JobSet))
            .Returns(new HashSet <string> {
                RecurringJobId
            });

            _connection.Setup(x => x.GetAllEntriesFromHash($"{PluginConstants.JobType}:{RecurringJobId}"))
            .Returns(_recurringJob);

            _backgroundJobMock = new BackgroundJobMock();

            _factory = new Mock <IBackgroundJobFactory>();
            _factory.Setup(x => x.Create(It.IsAny <CreateContext>())).Returns(_backgroundJobMock.Object);
        }
        public BackgroundJobFactoryFacts()
        {
            var storage = new Mock<JobStorage>();
            var connection = new Mock<IStorageConnection>();
            var state = new Mock<IState>();
            _backgroundJob = new BackgroundJobMock();

            _context = new Mock<CreateContext>(storage.Object, connection.Object, _backgroundJob.Job, state.Object)
            {
                CallBase = true
            };
            
            _filters = new List<object>();
            _filterProvider = new Mock<IJobFilterProvider>();
            _filterProvider.Setup(x => x.GetFilters(It.IsNotNull<Job>())).Returns(
                _filters.Select(f => new JobFilter(f, JobFilterScope.Type, null)));
            
            _innerFactory = new Mock<IBackgroundJobFactory>();
            _innerFactory.Setup(x => x.Create((_context.Object))).Returns(_backgroundJob.Object);
        }
        public BackgroundJobFactoryFacts()
        {
            var storage    = new Mock <JobStorage>();
            var connection = new Mock <IStorageConnection>();
            var state      = new Mock <IState>();

            _backgroundJob = new BackgroundJobMock();

            _context = new Mock <CreateContext>(storage.Object, connection.Object, _backgroundJob.Job, state.Object)
            {
                CallBase = true
            };

            _filters        = new List <object>();
            _filterProvider = new Mock <IJobFilterProvider>();
            _filterProvider.Setup(x => x.GetFilters(It.IsNotNull <Job>())).Returns(
                _filters.Select(f => new JobFilter(f, JobFilterScope.Type, null)));

            _innerFactory = new Mock <IBackgroundJobFactory>();
            _innerFactory.Setup(x => x.Create(_context.Object)).Returns(_backgroundJob.Object);
        }
        public StateMachineFacts()
        {
            var connection = new Mock <IStorageConnection>();

            _transaction = new Mock <IWriteOnlyTransaction>();
            connection.Setup(x => x.CreateWriteTransaction()).Returns(_transaction.Object);

            var backgroundJob = new BackgroundJobMock {
                Id = JobId
            };

            _context = new ApplyStateContextMock
            {
                BackgroundJob = backgroundJob,
                OldStateName  = OldStateName,
                Transaction   = _transaction
            };

            _filterProvider = new Mock <IJobFilterProvider>();
            _filterProvider.Setup(x => x.GetFilters(It.IsNotNull <Job>())).Returns(
                _filters.Select(f => new JobFilter(f, JobFilterScope.Type, null)));

            _innerMachine = new Mock <IStateMachine>();
        }
示例#13
0
 public PerformContextFacts()
 {
     _connection = new Mock<IStorageConnection>();
     _backgroundJob = new BackgroundJobMock();
     _cancellationToken = new Mock<IJobCancellationToken>();
 }
示例#14
0
 public CreatedContextFacts()
 {
     _exception     = new Exception();
     _backgroundJob = new BackgroundJobMock();
 }
 public CreatedContextFacts()
 {
     _exception = new Exception();
     _backgroundJob = new BackgroundJobMock();
 }