public async Task AnalyseTables_GivenCamelCaseTablesContainingTableWithValidForeignKey_ProducesNoMessages()
        {
            var rule = new ForeignKeyMissingRule(RuleLevel.Error);
            var database = GetSqliteDatabase();

            var tables = new[]
            {
                await database.GetTable("NoForeignKeyChildWithKey").UnwrapSomeAsync().ConfigureAwait(false),
                await database.GetTable("NoForeignKeyParent1").UnwrapSomeAsync().ConfigureAwait(false)
            };

            var hasMessages = await rule.AnalyseTables(tables).AnyAsync().ConfigureAwait(false);

            Assert.That(hasMessages, Is.False);
        }
        public async Task AnalyseTables_GivenSnakeCaseTablesContainingTableWithValidForeignKey_ProducesMessages()
        {
            var rule = new ForeignKeyMissingRule(RuleLevel.Error);
            var database = GetSqliteDatabase();

            var tables = new[]
            {
                await database.GetTable("no_foreign_key_parent_1").UnwrapSomeAsync().ConfigureAwait(false),
                await database.GetTable("no_foreign_key_child_without_key").UnwrapSomeAsync().ConfigureAwait(false)
            };

            var hasMessages = await rule.AnalyseTables(tables).AnyAsync().ConfigureAwait(false);

            Assert.That(hasMessages, Is.True);
        }
 public static void AnalyseTables_GivenNullTables_ThrowsArgumentNullException()
 {
     var rule = new ForeignKeyMissingRule(RuleLevel.Error);
     Assert.That(() => rule.AnalyseTables(null), Throws.ArgumentNullException);
 }