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); } }); }
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); } }); }
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); } }); }
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); }
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); }