public void Execute_Processes_ListTable() { var connection = ConnectionUtils.CreateConnection(); connection.StateDataList.Insert(new LiteList { Id = ObjectId.NewObjectId(), Key = "key", ExpireAt = DateTime.Now.AddMonths(-1) }); var manager = CreateManager(); manager.Execute(_token); var count = connection .StateDataList .Count(); Assert.Equal(0, count); }
public void Ctor_WaitForLock_OnlySingleLockCanBeAcquired() { var connection = ConnectionUtils.CreateConnection(); var numThreads = 10; long concurrencyCounter = 0; var manualResetEvent = new ManualResetEventSlim(); var success = new bool[numThreads]; // Spawn multiple threads to race each other. var threads = Enumerable.Range(0, numThreads).Select(i => new Thread(() => { // Wait for the start signal. manualResetEvent.Wait(); // Attempt to acquire the distributed lock. using (new SQLiteDistributedLock("resource1", TimeSpan.FromSeconds(10), connection, new SQLiteStorageOptions())) { // Find out if any other threads managed to acquire the lock. var oldConcurrencyCounter = Interlocked.CompareExchange(ref concurrencyCounter, 1, 0); // The old concurrency counter should be 0 as only one thread should be allowed to acquire the lock. success[i] = oldConcurrencyCounter == 0; Interlocked.MemoryBarrier(); // Hold the lock for some time. Thread.Sleep(100); Interlocked.Decrement(ref concurrencyCounter); } })).ToList(); threads.ForEach(t => t.Start()); manualResetEvent.Set(); threads.ForEach(t => Assert.True(t.Join(TimeSpan.FromSeconds(120)), "Thread is hanging unexpected")); // All the threads should report success. Interlocked.MemoryBarrier(); Assert.DoesNotContain(false, success); }
public void Execute_Processes_HashTable() { var connection = ConnectionUtils.CreateConnection(); connection.Database.Insert(new Hash() { Key = "key", Field = "field", Value = "", ExpireAt = DateTime.UtcNow.AddMonths(-1) }); var manager = CreateManager(); manager.Execute(_token); var count = connection .HashRepository .Count(); Assert.Equal(0, count); }
public void Execute_Processes_HashTable() { var connection = ConnectionUtils.CreateConnection(); connection.StateDataHash.Insert(new LiteHash { Id = ObjectId.NewObjectId(), Key = "key", Field = "field", Value = "", ExpireAt = DateTime.UtcNow.AddMonths(-1) }); var manager = CreateManager(); manager.Execute(_token); var count = connection .StateDataHash .Count(); Assert.Equal(0, count); }
public void Execute_Processes_AggregatedCounterTable() { using (var connection = ConnectionUtils.CreateConnection()) { // Arrange connection.AggregatedCounter.InsertOne(new AggregatedCounterDto { Key = "key", Value = 1, ExpireAt = DateTime.UtcNow.AddMonths(-1) }); var manager = CreateManager(); // Act manager.Execute(_token); // Assert Assert.Equal(0, connection.Counter.Find(new BsonDocument()).Count()); } }
public void Execute_Processes_ListTable() { using (var connection = ConnectionUtils.CreateConnection()) { // Arrange connection.List.InsertOne(new ListDto { Id = ObjectId.GenerateNewId(), Key = "key", ExpireAt = connection.GetServerTimeUtc().AddMonths(-1) }); var manager = CreateManager(); // Act manager.Execute(_token); // Assert var count = connection.List.Count(new BsonDocument()); Assert.Equal(0, count); } }
public void Execute_Processes_CounterTable() { using (var connection = ConnectionUtils.CreateConnection()) { // Arrange AsyncHelper.RunSync(() => connection.Counter.InsertOneAsync(new CounterDto { Id = ObjectId.GenerateNewId(), Key = "key", Value = 1, ExpireAt = connection.GetServerTimeUtc().AddMonths(-1) })); var manager = CreateManager(); // Act manager.Execute(_token); // Assert var count = AsyncHelper.RunSync(() => connection.Counter.CountAsync(new BsonDocument())); Assert.Equal(0, count); } }
public void Execute_Processes_CounterTable() { using (var connection = ConnectionUtils.CreateConnection()) { // Arrange connection.JobGraph.InsertOne(new CounterDto { Id = ObjectId.GenerateNewId(), Key = "key", Value = 1L, ExpireAt = DateTime.UtcNow.AddMonths(-1) }); var manager = CreateManager(); // Act manager.Execute(_token); // Assert var count = connection.JobGraph.OfType <CounterDto>().Count(new BsonDocument()); Assert.Equal(0, count); } }
public void Execute_Processes_HashTable() { using (var connection = ConnectionUtils.CreateConnection()) { // Arrange connection.Hash.Insert(new HashDto { Id = ObjectId.GenerateNewId(), Key = "key", Field = "field", Value = "", ExpireAt = connection.GetServerTimeUtc().AddMonths(-1) }); var manager = CreateManager(); // Act manager.Execute(_token); // Assert var count = connection.Hash.Count(); Assert.Equal(0, count); } }
public void Execute_Processes_JobTable() { using (var connection = ConnectionUtils.CreateConnection()) { // Arrange connection.Job.InsertOne(new JobDto { Id = 1, InvocationData = "", Arguments = "", CreatedAt = connection.GetServerTimeUtc(), ExpireAt = connection.GetServerTimeUtc().AddMonths(-1), }); var manager = CreateManager(); // Act manager.Execute(_token); // Assert var count = connection.Job.Count(new BsonDocument()); Assert.Equal(0, count); } }
public void Execute_Processes_JobTable() { using (var connection = ConnectionUtils.CreateConnection()) { // Arrange connection.JobGraph.InsertOne(new JobDto { Id = ObjectId.GenerateNewId(), InvocationData = "", Arguments = "", CreatedAt = DateTime.UtcNow, ExpireAt = DateTime.UtcNow.AddMonths(-1), }); var manager = CreateManager(); // Act manager.Execute(_token); // Assert var count = connection.JobGraph.OfType <JobDto>().Count(new BsonDocument()); Assert.Equal(0, count); } }
private IDbConnection CreateConnection() { return(ConnectionUtils.CreateConnection()); }
public OracleJobQueueTests() { _connection = ConnectionUtils.CreateConnection(); _storage = new OracleStorage(_connection); }
private static void UseConnection(Action <HangfireDbContext> action) { var connection = ConnectionUtils.CreateConnection(); action(connection); }
public MySqlJobQueueTests() { _connection = ConnectionUtils.CreateConnection(); _storage = new MySqlStorage(_connection); }
public MySqlJobQueueTests() { _connection = ConnectionUtils.CreateConnection(); _storage = new ElasticStorage.ElasticStorage(_connection, _storageOptions); }
public void Ctor_ThrowsAnException_IfMongoStorageOptionsIsNull() { var exception = Assert.Throws <ArgumentNullException>(() => new MongoWriteOnlyTransaction(ConnectionUtils.CreateConnection(), _queueProviders, null)); Assert.Equal("storageOptions", exception.ParamName); }
private void UseConnection(Action <HangfireDbContext> action) { HangfireDbContext connection = ConnectionUtils.CreateConnection(); action(connection); }
public void Ctor_ThrowsAnException_IfProvidersCollectionIsNull() { var exception = Assert.Throws <ArgumentNullException>(() => new SQLiteWriteOnlyTransaction(ConnectionUtils.CreateConnection(), null)); Assert.Equal("queueProviders", exception.ParamName); }