private void VerifyCount(long messageCount, string route)
        {
            var connScope = _scope.GetDisposable <LiteDbConnectionManager>();

            if (connScope == null)
            {
                using (var conn = new LiteDatabase(_connection.ConnectionString))
                {
                    if (string.IsNullOrEmpty(route))
                    {
                        var col = conn.GetCollection <Schema.MetaDataTable>(_tableNameHelper.MetaDataName);
                        Assert.Equal(messageCount, col.Count());
                    }
                    else
                    {
                        var col     = conn.GetCollection <Schema.MetaDataTable>(_tableNameHelper.MetaDataName);
                        var results = col.Query()
                                      .Where(x => x.Route.Equals(route))
                                      .ToList();
                        Assert.Equal(messageCount, results.Count);
                    }
                }
            }
            else
            {
            }
        }
Example #2
0
        public static void SetError(QueueConnection queueConnection, ICreationScope scope)
        {
            var connection = new LiteDbConnectionInformation(queueConnection);
            var helper     = new TableNameHelper(connection);
            var connScope  = scope.GetDisposable <LiteDbConnectionManager>();

            if (connScope == null)
            {
                using (var conn = new LiteDatabase(connection.ConnectionString))
                {
                    var col     = conn.GetCollection <Schema.StatusTable>(helper.StatusName);
                    var results = col.Query()
                                  .ToList();
                    foreach (var result in results)
                    {
                        result.Status = QueueStatuses.Error;
                        col.Update(result);
                    }
                }
            }
            else
            {
                using (var conn = connScope.GetDatabase())
                {
                    var col     = conn.Database.GetCollection <Schema.StatusTable>(helper.StatusName);
                    var results = col.Query()
                                  .ToList();
                    foreach (var result in results)
                    {
                        result.Status = QueueStatuses.Error;
                        col.Update(result);
                    }
                }
            }
        }
        public void Verify(long messageCount, int errorCount)
        {
            var connScope = _scope.GetDisposable <LiteDbConnectionManager>();

            if (connScope == null)
            {
                using (var conn = new LiteDatabase(_connection.ConnectionString))
                {
                    var col = conn.GetCollection <Schema.MetaDataErrorsTable>(_tableNameHelper.MetaDataErrorsName);
                    Assert.Equal(messageCount, col.Count());

                    //only check the two below tables if the error count is > 0.
                    //error count of 0 means we are processing poison messages
                    //poison messages go right into the error queue, without updating the tracking table
                    if (errorCount > 0)
                    {
                        var col2 = conn.GetCollection <Schema.ErrorTrackingTable>(_tableNameHelper.ErrorTrackingName);
                        Assert.Equal(messageCount, col2.Count());

                        var results = col2.Query()
                                      .ToList();
                        foreach (var record in results)
                        {
                            Assert.Equal(errorCount, record.RetryCount);
                        }
                    }
                }
            }
            else
            {
                using (var conn = connScope.GetDatabase())
                {
                    var col = conn.Database.GetCollection <Schema.MetaDataErrorsTable>(_tableNameHelper.MetaDataErrorsName);
                    Assert.Equal(messageCount, col.Count());

                    //only check the two below tables if the error count is > 0.
                    //error count of 0 means we are processing poison messages
                    //poison messages go right into the error queue, without updating the tracking table
                    if (errorCount > 0)
                    {
                        var col2 = conn.Database.GetCollection <Schema.ErrorTrackingTable>(_tableNameHelper.ErrorTrackingName);
                        Assert.Equal(messageCount, col2.Count());

                        var results = col2.Query()
                                      .ToList();
                        foreach (var record in results)
                        {
                            Assert.Equal(errorCount, record.RetryCount);
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="LiteDbConnectionManager"/> class.
        /// </summary>
        /// <param name="connectionInformation">The connection information.</param>
        /// <param name="scope">The scope.</param>
        public LiteDbConnectionManager(IConnectionInformation connectionInformation, ICreationScope scope)
        {
            Guard.NotNull(() => connectionInformation, connectionInformation);
            Guard.NotNull(() => scope, scope);
            _connectionInformation = connectionInformation;

            var builder = new LiteDB.ConnectionString(_connectionInformation.ConnectionString);

            _shared = builder.Connection == ConnectionType.Shared;

            var existingScopeConnection = scope.GetDisposable <LiteDbConnectionManager>();

            if (existingScopeConnection != null)
            {
                _db = existingScopeConnection.GetDatabase().Database;
                _shouldDisposeDirectConnection = false;
            }
            else
            {
                _shouldDisposeDirectConnection = true;
            }
        }
Example #5
0
        public static void Verify(QueueConnection queueConnection, long messageCount, ICreationScope scope)
        {
            var connection = new LiteDbConnectionInformation(queueConnection);
            var helper     = new TableNameHelper(connection);
            var connScope  = scope.GetDisposable <LiteDbConnectionManager>();

            if (connScope == null)
            {
                using (var conn = new LiteDatabase(connection.ConnectionString))
                {
                    var col = conn.GetCollection <Schema.MetaDataTable>(helper.MetaDataName);
                    Assert.Equal(messageCount, col.Count());
                }
            }
            else
            {
                using (var conn = connScope.GetDatabase())
                {
                    var col = conn.Database.GetCollection <Schema.MetaDataTable>(helper.MetaDataName);
                    Assert.Equal(messageCount, col.Count());
                }
            }
        }
        private void AllTablesRecordCount(int recordCount, bool ignoreMeta, bool ignoreErrorTracking)
        {
            var connScope = _scope.GetDisposable <LiteDbConnectionManager>();

            if (connScope == null)
            {
                using (var conn = new LiteDatabase(_connection.ConnectionString))
                {
                    if (!ignoreMeta)
                    {
                        var col = conn.GetCollection <Schema.MetaDataTable>(_tableNameHelper.MetaDataName);
                        Assert.Equal(recordCount, col.Count());
                    }

                    if (!ignoreErrorTracking)
                    {
                        var col = conn.GetCollection <Schema.ErrorTrackingTable>(_tableNameHelper.ErrorTrackingName);
                        Assert.Equal(recordCount, col.Count());
                    }

                    var col2 = conn.GetCollection <Schema.MetaDataErrorsTable>(_tableNameHelper.MetaDataErrorsName);
                    Assert.Equal(recordCount, col2.Count());

                    var col3 = conn.GetCollection <Schema.QueueTable>(_tableNameHelper.QueueName);
                    Assert.Equal(recordCount, col3.Count());

                    if (_options.EnableStatusTable)
                    {
                        var col = conn.GetCollection <Schema.StatusTable>(_tableNameHelper.StatusName);
                        Assert.Equal(recordCount, col.Count());
                    }
                }
            }
            else
            {
                using (var conn = connScope.GetDatabase())
                {
                    if (!ignoreMeta)
                    {
                        var col = conn.Database.GetCollection <Schema.MetaDataTable>(_tableNameHelper.MetaDataName);
                        Assert.Equal(recordCount, col.Count());
                    }

                    if (!ignoreErrorTracking)
                    {
                        var col = conn.Database.GetCollection <Schema.ErrorTrackingTable>(_tableNameHelper.ErrorTrackingName);
                        Assert.Equal(recordCount, col.Count());
                    }

                    var col2 = conn.Database.GetCollection <Schema.MetaDataErrorsTable>(_tableNameHelper.MetaDataErrorsName);
                    Assert.Equal(recordCount, col2.Count());

                    var col3 = conn.Database.GetCollection <Schema.QueueTable>(_tableNameHelper.QueueName);
                    Assert.Equal(recordCount, col3.Count());

                    if (_options.EnableStatusTable)
                    {
                        var col = conn.Database.GetCollection <Schema.StatusTable>(_tableNameHelper.StatusName);
                        Assert.Equal(recordCount, col.Count());
                    }
                }
            }
        }