public VerifyQueueRecordCount(string queueName, string connectionString) { var connection = new BaseConnectionInformation(new QueueConnection(queueName, connectionString)); _redisNames = new RedisNames(connection); _connection = new RedisConnection(connection); }
public VerifyErrorCounts(string queueName, string connectionString) { var connection = new BaseConnectionInformation(queueName, connectionString); _redisNames = new RedisNames(connection); _connection = new RedisConnection(connection); }
public VerifyQueueData(string queueName, QueueProducerConfiguration configuration, string connectionString) { _configuration = configuration; var connection = new BaseConnectionInformation(queueName, connectionString); _redisNames = new RedisNames(connection); _connection = new RedisConnection(connection); }
public VerifyQueueData(QueueConnection queueConnection, QueueProducerConfiguration configuration) { _configuration = configuration; var connection = new BaseConnectionInformation(queueConnection); _redisNames = new RedisNames(connection); _connection = new RedisConnection(connection); }
public void Test_Clone(string queue, string connection) { var test = new BaseConnectionInformation(new QueueConnection(queue, connection)); var clone = (BaseConnectionInformation)test.Clone(); Assert.Equal(test.ConnectionString, clone.ConnectionString); Assert.Equal(test.QueueName, clone.QueueName); }
/// <summary> /// Gets the specified queue. /// </summary> /// <typeparam name="TTransportInit">The type of the transport initialize.</typeparam> /// <typeparam name="TQueue">The type of the queue.</typeparam> /// <param name="queueConnection">Queue and connection information.</param> /// <param name="producerConfiguration">The producer configuration.</param> /// <returns></returns> /// <exception cref="DotNetWorkQueueException">Failed to create the queue. The error message is {createResult.ErrorMessage}</exception> public IProducerMethodJobQueue Get <TTransportInit, TQueue>(QueueConnection queueConnection, Action <QueueProducerConfiguration> producerConfiguration = null) where TTransportInit : ITransportInit, new() where TQueue : class, IJobQueueCreation { var connectionInfo = new BaseConnectionInformation(queueConnection); if (_queues.ContainsKey(connectionInfo)) { return(_queues[connectionInfo]); } var transportName = typeof(TTransportInit).ToString(); if (!_containers.ContainsKey(transportName)) { var container = new QueueContainer <TTransportInit>(_registrations.QueueRegistrations, _registrations.QueueOptions); if (!_containers.TryAdd(transportName, container)) { container.Dispose(); } } if (!_queues.ContainsKey(connectionInfo)) { using (var jobQueueCreation = new JobQueueCreationContainer <TTransportInit>(_registrations.QueueCreationRegistrations, _registrations.QueueCreationOptions)) { using (var createQueue = jobQueueCreation.GetQueueCreation <TQueue>(queueConnection)) { var createResult = createQueue.CreateJobSchedulerQueue(_registrations.QueueCreationRegistrations, queueConnection, _registrations.QueueCreationOptions); if (createResult.Success) { var scope = createQueue.Scope; var queue = _containers[transportName].CreateMethodJobProducer(queueConnection); producerConfiguration?.Invoke(queue.Configuration); if (!_queues.TryAdd(connectionInfo, queue)) { queue.Dispose(); scope.Dispose(); } else { queue.Start(); _creationScopes.TryAdd(connectionInfo, scope); } } else { throw new DotNetWorkQueueException($"Failed to create the queue. The error message is {createResult.ErrorMessage}"); } } } } return(_queues[connectionInfo]); }
public static void SetError(QueueConnection queueConnection, ICreationScope scope) { var connectionInfo = new BaseConnectionInformation(queueConnection); var conn = new RedisConnection(connectionInfo); var redisNames = new RedisNames(connectionInfo); var db = conn.Connection.GetDatabase(); var id = db.HashGet(redisNames.JobNames, "job1"); db.HashSet(redisNames.Status, id, "2"); }
public static void Verify(QueueConnection queueConnection, long messageCount, ICreationScope scope) { var connectionInfo = new BaseConnectionInformation(queueConnection); var redisNames = new RedisNames(connectionInfo); using (var connection = new RedisConnection(connectionInfo)) { var db = connection.Connection.GetDatabase(); var records = db.HashLength(redisNames.Values); Assert.Equal(messageCount, records); } }
public void Test_Clone(string queue, string connection, Dictionary <string, string> settings) { var test = new BaseConnectionInformation(new QueueConnection(queue, connection, settings)); var clone = (BaseConnectionInformation)test.Clone(); Assert.Equal(test.ConnectionString, clone.ConnectionString); Assert.Equal(test.QueueName, clone.QueueName); foreach (var setting in settings) { Assert.Contains(setting.Key, clone.AdditionalConnectionSettings); } }
public void Test_Equals(string queue, string connection, Dictionary <string, string> settings, Dictionary <string, string> settings2) { var test = new BaseConnectionInformation(new QueueConnection(queue, connection, settings)); var clone = (BaseConnectionInformation)test.Clone(); Assert.True(test.Equals(clone)); Assert.False(test.Equals(null)); var test2 = new BaseConnectionInformation(new QueueConnection(queue, connection)); Assert.False(test2.Equals(test)); var test3 = new BaseConnectionInformation(new QueueConnection(queue, connection, settings2)); Assert.False(test2.Equals(test)); }
public void Test_Container(string queue, string connection, Dictionary <string, string> settings) { var test = new BaseConnectionInformation(new QueueConnection(queue, connection, settings)); Assert.Equal("Base connection object cannot determine container", test.Container); }
public void GetSet_Queue(string expected) { var test = new BaseConnectionInformation(new QueueConnection(expected, string.Empty)); Assert.Equal(expected, test.QueueName); }
public void GetSet_Connection(string expected) { var test = new BaseConnectionInformation(new QueueConnection(string.Empty, expected)); Assert.Equal(expected, test.ConnectionString); }