Esempio n. 1
0
        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);
        }
Esempio n. 4
0
        public VerifyQueueData(QueueConnection queueConnection, QueueProducerConfiguration configuration)
        {
            _configuration = configuration;
            var connection = new BaseConnectionInformation(queueConnection);

            _redisNames = new RedisNames(connection);
            _connection = new RedisConnection(connection);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        /// <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]);
        }
Esempio n. 7
0
        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");
        }
Esempio n. 8
0
        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);
        }