public void Should_Be_Able_To_Get_ForeignKeyColumns_For_A_Table(string tableName) { // Arrange var sut = new SchemaCollectionsProvider(); var connectionString = ConfigurationManager.ConnectionStrings["CrmOrganisation"]; using (var conn = new CrmDbConnection(connectionString.ConnectionString)) { var restrictions = new string[] { null, null, tableName, null }; // Act var collection = sut.GetForeignKeyColumns(conn, restrictions); // Assert Assert.That(collection, Is.Not.Null); Assert.That(collection.Columns, Is.Not.Null); Assert.That(collection.Rows.Count, Is.GreaterThan(0)); foreach (DataRow row in collection.Rows) { var val = AssertColVal(collection, row, "constraint_catalog"); Assert.That(val, Is.EqualTo(conn.ConnectionInfo.OrganisationName)); val = AssertColVal(collection, row, "constraint_schema"); Assert.That(val, Is.EqualTo("dbo")); val = AssertColVal(collection, row, "constraint_name"); Assert.IsFalse(string.IsNullOrEmpty((string)val)); Console.WriteLine(val); val = AssertColVal(collection, row, "table_catalog"); Assert.That(val, Is.EqualTo(conn.ConnectionInfo.OrganisationName)); val = AssertColVal(collection, row, "table_schema"); Assert.That(val, Is.EqualTo("dbo")); val = AssertColVal(collection, row, "table_name"); Assert.That(val, Is.EqualTo(tableName)); val = AssertColVal(collection, row, "constraint_type"); Assert.That(val, Is.EqualTo("FOREIGN KEY")); val = AssertColVal(collection, row, "column_name"); Assert.That(val, Is.Not.Null); Console.WriteLine(val); val = AssertColVal(collection, row, "ordinal_position"); Assert.That(val, Is.Not.EqualTo(0)); } } }