public void Ctor_CorrectlySets_AllInstanceProperties()
 {
     UseConnection((sql, storage) =>
     {
         using (var fetchedJob = new SqlServerTimeoutJob(storage, 1, JobId, Queue))
         {
             Assert.Equal(1, fetchedJob.Id);
             Assert.Equal(JobId, fetchedJob.JobId);
             Assert.Equal(Queue, fetchedJob.Queue);
         }
     });
 }
 public void Ctor_CorrectlySets_AllInstanceProperties(bool useMicrosoftDataSqlClient)
 {
     UseConnection((sql, storage) =>
     {
         using (var fetchedJob = new SqlServerTimeoutJob(storage, 1, JobId, Queue, FetchedAt))
         {
             Assert.Equal(1, fetchedJob.Id);
             Assert.Equal(JobId, fetchedJob.JobId);
             Assert.Equal(Queue, fetchedJob.Queue);
             Assert.Equal(FetchedAt, fetchedJob.FetchedAt);
         }
     }, useMicrosoftDataSqlClient);
 }
        public void Dispose_SetsFetchedAtValueToNull_IfThereWereNoCallsToComplete(bool useMicrosoftDataSqlClient)
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    // Act
                    processingJob.Dispose();

                    // Assert
                    var record = sql.Query($"select * from [{Constants.DefaultSchema}].JobQueue").Single();
                    Assert.Null(record.FetchedAt);
                }
            }, useMicrosoftDataSqlClient);
        }
        public void RemoveFromQueue_ReallyDeletesTheJobFromTheQueue()
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    // Act
                    processingJob.RemoveFromQueue();

                    // Assert
                    var count = sql.Query <int>("select count(*) from HangFire.JobQueue").Single();
                    Assert.Equal(0, count);
                }
            });
        }
        public void Dispose_SetsFetchedAtValueToNull_IfThereWereNoCallsToComplete()
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    // Act
                    processingJob.Dispose();

                    // Assert
                    var record = sql.Query("select * from HangFire.JobQueue").Single();
                    Assert.Null(record.FetchedAt);
                }
            });
        }
Пример #6
0
        public void Requeue_SetsFetchedAtValueToNull()
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    // Act
                    processingJob.Requeue();

                    // Assert
                    var record = sql.Query($"select * from [{Constants.DefaultSchema}].JobQueue").Single();
                    Assert.Null(record.FetchedAt);
                }
            });
        }
Пример #7
0
        public void Timer_UpdatesFetchedAtColumn()
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    Thread.Sleep(TimeSpan.FromSeconds(10));

                    var record = sql.Query("select * from HangFire.JobQueue").Single();

                    Assert.Equal(processingJob.FetchedAt, record.FetchedAt);
                    var now = DateTime.UtcNow;
                    Assert.True(now.AddSeconds(-5) < record.FetchedAt, (now - record.FetchedAt).ToString());
                }
            });
        }
        public void RemoveFromQueue_ReallyDeletesTheJobFromTheQueue(bool useMicrosoftDataSqlClient)
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    processingJob.DisposeTimer();

                    // Act
                    processingJob.RemoveFromQueue();

                    // Assert
                    var count = sql.Query <int>($"select count(*) from [{Constants.DefaultSchema}].JobQueue").Single();
                    Assert.Equal(0, count);
                }
            }, useMicrosoftDataSqlClient);
        }
        public void RequeueQueue_AfterTimer_SetsFetchedAtValueToNull()
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    Thread.Sleep(TimeSpan.FromSeconds(10));

                    // Act
                    processingJob.Requeue();

                    // Assert
                    var record = sql.Query("select * from HangFire.JobQueue").Single();
                    Assert.Null(record.FetchedAt);
                }
            });
        }
Пример #10
0
        public void RemoveFromQueue_AfterTimer_RemovesJobFromTheQueue()
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    Thread.Sleep(TimeSpan.FromSeconds(10));

                    // Act
                    processingJob.RemoveFromQueue();

                    // Assert
                    var count = sql.Query <int>($"select count(*) from [{Constants.DefaultSchema}].JobQueue").Single();
                    Assert.Equal(0, count);
                }
            });
        }
        public void RequeueQueue_AfterTimer_SetsFetchedAtValueToNull(bool useMicrosoftDataSqlClient)
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    Thread.Sleep(TimeSpan.FromSeconds(10));
                    processingJob.DisposeTimer();

                    // Act
                    processingJob.Requeue();

                    // Assert
                    var record = sql.Query($"select * from [{Constants.DefaultSchema}].JobQueue").Single();
                    Assert.Null(record.FetchedAt);
                }
            }, useMicrosoftDataSqlClient);
        }
        public void Timer_UpdatesFetchedAtColumn(bool useMicrosoftDataSqlClient)
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                var id = CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                using (var processingJob = new SqlServerTimeoutJob(storage, id, "1", "default", FetchedAt))
                {
                    Thread.Sleep(TimeSpan.FromSeconds(10));
                    processingJob.DisposeTimer();

                    var record = sql.Query($"select * from [{Constants.DefaultSchema}].JobQueue").Single();

                    Assert.NotNull(processingJob.FetchedAt);
                    Assert.Equal <DateTime?>(processingJob.FetchedAt, record.FetchedAt);
                    var now = DateTime.UtcNow;
                    Assert.True(now.AddSeconds(-5) < record.FetchedAt, (now - record.FetchedAt).ToString());
                }
            }, useMicrosoftDataSqlClient);
        }
Пример #13
0
        public void RemoveFromQueue_DoesNotDelete_UnrelatedJobs()
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                CreateJobQueueRecord(sql, "1", "critical", FetchedAt);
                CreateJobQueueRecord(sql, "2", "default", FetchedAt);

                using (var fetchedJob = new SqlServerTimeoutJob(storage, 999, "1", "default", FetchedAt))
                {
                    // Act
                    fetchedJob.RemoveFromQueue();

                    // Assert
                    var count = sql.Query <int>("select count(*) from HangFire.JobQueue").Single();
                    Assert.Equal(3, count);
                }
            });
        }
        public void RemoveFromQueue_DoesNotDelete_UnrelatedJobs(bool useMicrosoftDataSqlClient)
        {
            UseConnection((sql, storage) =>
            {
                // Arrange
                CreateJobQueueRecord(sql, "1", "default", FetchedAt);
                CreateJobQueueRecord(sql, "1", "critical", FetchedAt);
                CreateJobQueueRecord(sql, "2", "default", FetchedAt);

                using (var fetchedJob = new SqlServerTimeoutJob(storage, 999, "1", "default", FetchedAt))
                {
                    fetchedJob.DisposeTimer();

                    // Act
                    fetchedJob.RemoveFromQueue();

                    // Assert
                    var count = sql.Query <int>($"select count(*) from [{Constants.DefaultSchema}].JobQueue").Single();
                    Assert.Equal(3, count);
                }
            }, useMicrosoftDataSqlClient);
        }